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

Kri*_*ddy 5 hive apache-spark apache-spark-sql apache-spark-1.6

是否有任何配置属性我们可以将其设置为在spark 1.6中通过spark-shell禁用/启用Hive支持.我试图获取所有sqlContext配置属性,

sqlContext.getAllConfs.foreach(println)
Run Code Online (Sandbox Code Playgroud)

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

Jac*_*ski 11

Spark> = 2.0

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

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

SPARK-16013添加选项以禁用spark-shell/pyspark中的HiveContext


Spark <2.0

Spark 1.6中没有这样的Spark属性.

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


Yeh*_*kon 5

您可以通过创建 Spark 会话来启用 Hive 支持,但仅限于 Spark >=2.0:

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

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