hadoop 3和spark.sql:同时使用hivewarehousesession和spark.sql

k4ymrczo  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(713)

以前,我可以完全在spark.sqlapi中工作,与配置单元表和sparkDataframe进行交互。我可以查询使用spark注册的视图,或者使用相同api的配置单元表。
我想确认一下,hadoop3.1和pyspark2.3.2已经不可能了?要在配置单元表上执行任何操作,必须使用“hivewarehousesession”api,而不是spark.sql api。有没有办法继续使用spark.sqlapi并与hive交互,或者我必须重构所有代码?

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

因为spark文档上说
以相同的方式连接到任何数据源
并特别以hive为例,但是HortonWorksHadoop3文档中说
作为spark开发人员,您可以使用jdbc风格的hivewarehousesession api执行对配置单元的查询
这两种说法是直接矛盾的。
hadoop文档继续说“您可以使用hivewarehouse连接器(hwc)api从spark访问hivecatalog中的任何类型的表。使用sparksql时,标准spark API将访问spark目录中的表。“
至少到目前为止,spark.sql spark不再是通用的,对吗?我不能再使用相同的api与配置单元表无缝交互了?

lztngnrs

lztngnrs1#

是的,没错。我使用的是spark2.3.2,但是我不能再使用sparksqldefaultapi访问配置单元表了。从hdp3.0开始,apachehive和apachespark的目录是分开的,它们是互斥的。正如您所提到的,您必须使用pyspark llap库中的hivewarehousesession。

相关问题