我使用的是这个版本的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")