6

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

sqlContext.getAllConfs.foreach(println)

但是,我不确定禁用/启用配置单元支持实际上需要哪个属性。或者有没有其他方法可以做到这一点?

4

2 回答 2

16

火花 >= 2.0

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

可能的值spark.sql.catalogImplementationin-memoryhive

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


火花 < 2.0

这样的 Spark 属性在 Spark 1.6中不可用。

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

于 2017-07-20T19:34:26.643 回答
4

您可以通过创建 spark 会话来启用 hive 支持,但只能在 spark >=2.0 中:

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

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

于 2017-07-20T09:04:57.010 回答