2015-07-17 2 views
3

Я использую эту версию Spark: spark-1.4.0-bin-hadoop2.6. Я хочу проверить несколько свойств по умолчанию. Поэтому я дал следующее заявление в spark-shellКак получить значения свойств по умолчанию в Spark

scala> sqlContext.getConf("spark.sql.hive.metastore.version") 

Я ожидал, что вызов метода getConf возвращать значение 0.13.1 как мы проделали в этом link. Но я получил приведенное ниже исключение

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) 

Я возвращаю свойства в правильном направлении?

ответ

3

Вы можете использовать

sc.getConf.toDebugString 

ИЛИ

sqlContext.getAllConfs 

, которая будет возвращать все значения, которые были установлены, однако некоторые значения по умолчанию в коде. В вашем конкретном примере it is indeed in the code:

getConf(HIVE_METASTORE_VERSION, hiveExecutionVersion) 

, где по умолчанию is indeed in the code:

val hiveExecutionVersion: String = "0.13.1" 

Так, getConf будет пытаться тянуть версию metastore от конфигурации, отступая к дефолту, но это не перечисленных в conf conf.

2

В Спарк 2.x.x Если бы я хотел знать значение искрового Conf я бы это сделать по умолчанию:

Ниже команды возвратит Scala карту в свече скорлупе.

spark.sqlContext.getAllConfs 

Чтобы найти свое значение свойства конф:

например - Чтобы найти исходный каталог хранилища, используемый искровым набором, установленным для conf - spark.sql.warehouse.dir:

spark.sqlContext.getAllConfs.get("spark.sql.warehouse.dir") 
Смежные вопросы