【问题标题】:Hadoop 3 and spark.sql: working with both HiveWarehouseSession and spark.sqlHadoop 3 和 spark.sql:同时使用 HiveWarehouseSession 和 spark.sql
【发布时间】:2020-01-03 04:25:40
【问题描述】:

以前我可以完全在 spark.sql api 中工作以与 hive 表和 spark 数据帧进行交互。我可以查询使用 spark 注册的视图或具有相同 api 的 hive 表。

我想确认一下,hadoop 3.1 和 pyspark 2.3.2 不再可能实现这一点?要对 hive 表执行任何操作,必须使用“HiveWarehouseSession”api 而不是 spark.sql api。有什么方法可以继续使用 spark.sql api 并与 hive 交互,还是我必须重构所有代码?

hive = HiveWarehouseSession.session(spark).build()
hive.execute("arbitrary example query here")
spark.sql("arbitrary example query here")

这很令人困惑,因为spark documentation

以同样的方式连接到任何数据源

并专门以 Hive 为例,但随后 Hortonworks hadoop 3 documentation

作为 Spark 开发人员,您使用 JDBC 样式的 HiveWarehouseSession API 对 Hive 执行查询

这两种说法是直接矛盾的。

Hadoop 文档继续说“您可以使用 Hive Warehouse Connector (HWC) API 从 Spark 访问 Hive 目录中的任何类型的表。使用 SparkSQL 时,标准 Spark API 可以访问 Spark 目录中的表。”

至少到目前为止,Spark.sql spark 不再是通用的,对吗?并且我不能再使用相同的 api 与 hive 表无缝交互?

【问题讨论】:

    标签: apache-spark hadoop hive pyspark pyspark-sql


    【解决方案1】:

    是的,没错。我正在使用 Spark 2.3.2,但我无法再使用 Spark SQL 默认 API 访问配置单元表。 从 HDP 3.0 开始,Apache Hive 和 Apache Spark 的目录是分开的,它们是互斥的。 正如您所提到的,您必须使用 pyspark-llap 库中的 HiveWarehouseSession。

    【讨论】:

      猜你喜欢
      • 2019-02-15
      • 2021-06-07
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 2022-06-27
      • 2019-09-05
      相关资源
      最近更新 更多