如何在Spark中获得默认属性值



我使用的是这个版本的Spark: spark-1.4.0-bin-hadoop2.6。我想检查几个默认属性。所以我在spark-shell

中给出了下面的语句
scala> sqlContext.getConf("spark.sql.hive.metastore.version")

我期望调用方法getConf返回0.13.1的值,如本链接中所述。但是我得到了下面的异常

java.util.NoSuchElementException: spark.sql.hive.metastore.version
    at org.apache.spark.sql.SQLConf$$anonfun$getConf$1.apply(SQLConf.scala:283)
    at org.apache.spark.sql.SQLConf$$anonfun$getConf$1.apply(SQLConf.scala:283)

我是否以正确的方式检索属性?

可以使用

sc.getConf.toDebugString

sqlContext.getAllConfs

将返回所有已设置的值,但代码中有一些默认值。在您的具体示例中,它确实在代码中:

getConf(HIVE_METASTORE_VERSION, hiveExecutionVersion)

,默认值在代码中:

val hiveExecutionVersion: String = "0.13.1"

因此,getConf将尝试从配置中拉出metastore版本,回落到默认版本,但这并没有在配置本身中列出。

如果我想知道Spark Conf的默认值,我会这样做:

下面的命令将返回spark-shell中的Scala Map。

spark.sqlContext.getAllConfs 

查找配置属性的值:

。—查找spark使用的默认仓库目录设置为confspark.sql.warehouse.dir:

spark.sqlContext.getAllConfs.get("spark.sql.warehouse.dir")

相关内容

  • 没有找到相关文章

最新更新