【发布时间】: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