如何通过Spark属性(Spark 1.6)启用或禁用spark-shell中的Hive支持?

时间:2017-07-20 08:46:50

标签: apache-spark hive apache-spark-sql apache-spark-1.6

是否有任何配置属性我们可以将其设置为在spark 1.6中通过spark-shell禁用/启用Hive支持。我尝试使用

获取所有sqlContext配置属性
sqlContext.getAllConfs.foreach(println)

但是,我不确定实际上需要哪个属性来禁用/启用配置单元支持。或者还有其他方法吗?

2 个答案:

答案 0 :(得分:7)

  

Spark> = 2.0

     

使用config可以启用和禁用Hive上下文   spark.sql.catalogImplementation

     

spark.sql.catalogImplementation的可能值是    内存 配置单元

     

SPARK-16013 Add option to disable HiveContext in spark-shell/pyspark

Spark< 2.0

这样的Spark属性在Spark 1.6中

解决这个问题的一种方法是删除与Hive相关的jar,这些jar反过来会禁用Spark中的Hive支持(因为Spark在需要Hive类时可以使用Hive支持)。

答案 1 :(得分:4)

您可以通过创建spark会话来启用配置单元支持,但仅限于spark> = 2.0:

val spark = SparkSession
  .builder()
  .appName("Spark Hive Example")
  .config("spark.sql.warehouse.dir", warehouseLocation)
  .enableHiveSupport()
  .getOrCreate()

在这里,您可以通过更改hive-site.xml中的hive和spark属性来阅读如何在spark上配置hive,spark-defaults.conf:https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started - 它必须与spark 1.6.1一起使用