spark sql在hdp的配置单元中找不到表

uqjltbpv  于 2021-06-24  发布在  Hive
关注(0)|答案(3)|浏览(519)

我使用hdp3.1并添加了spark2、hive和其他需要的服务。我把 hive 里的酸性特征翻了个底朝天。spark作业在Hive中找不到table。但是这个表存在于Hive中。异常如下:org.apache.spark.sql.analysisexception:table or view not found spark的conf文件夹中有hive-site.xml。它是由hdp自动创建的。但它与hive的conf文件夹中的文件不同。从日志中,spark可以正确地获得hive的节俭uri。我使用sparksql并在sparkshell中创建了一个配置单元表。我发现表是在spark.sql.warehouse.dir指定的折叠中创建的。我将其值更改为hive.metastore.warehouse.dir。但问题仍然存在。在创建spark会话时,我还启用了配置单元支持。

val ss = SparkSession.builder().appName("统计").enableHiveSupport().getOrCreate()
ghg1uchk

ghg1uchk1#

您可以在配置单元配置中使用配置单元仓库连接器和llap

fdx2calv

fdx2calv2#

spark的conf文件夹中的hive-site.xml中有metastore.catalog.default。它是Spark。应该换成 hive 。顺便说一句,我们应该禁用Hive的酸性功能。

k75qkfdt

k75qkfdt3#

在hdp3.0及更高版本中,spark和hive使用独立的目录来访问相同或不同平台上的sparksql或hive表。
默认情况下,spark只读取spark目录。而且,这意味着spark应用程序尝试读取/写入使用hivecli创建的表时将失败,并出现table not found异常。
解决方法:
在hivecli和sparksql中创建表
Hive仓库连接器

相关问题