问题:
select * from dws.dws_example where dt = '2021-10-19' limit 10;
用Hive可以读取。
但是用spark-sql读取没有结果。
并且读取另外的分区,
select * from dws.dws_example where dt = '2021-10-19' limit 10;
都能读取到记录。
解决思路:
到hive里show create table
得到结果:
| 'orc.compress'='SNAPPY',
怀疑这个问题是spark和hive元数据冲突。
查看spark文档,得到解决方案。
spark-sql --conf spark.hadoop.metastore.catalog.default=hive --conf spark.sql.hive.convertMetastoreOrc=false
问题搞定。
Spark-SQL与Hive元数据不一致问题解决
博客内容讲述了在使用Spark-SQL读取Hive表时遇到无结果的问题,经检查发现可能是由于Spark与Hive的元数据存在冲突。通过在Spark-SQL命令中添加配置参数`spark.hadoop.metastore.catalog.default=hive`和`spark.sql.hive.convertMetastoreOrc=false`,成功解决了这个问题。该问题涉及到Hive表的ORC压缩格式和Spark对Hive元数据的处理方式。
1399

被折叠的 条评论
为什么被折叠?



