如何在spark中读取orc事务配置单元表?
我在通过spark读取orc事务表时遇到了一个问题,我得到了配置单元表的模式,但无法读取实际数据
查看完整场景:
hive>create table default.hello(id int,name string)由(id)聚集到2个存储桶中,存储为orc tblproperty('transactional'='true');
配置单元>插入default.hello值(10,'');
现在我尝试从sparksql访问hiveorc数据,但它只显示schema
spark.sql(“select*from hello”).show()
输出:id,name
3条答案
按热度按时间kkih6yb81#
您需要在末尾添加一个操作以强制它运行查询:
(这里的默认值是显示20行)
或
查看两行输出数据。
这些只是可以在Dataframe上执行的操作的示例。
hivapdat2#
是的,作为一个解决办法,我们可以使用压缩,但当工作是微批量压缩不会有帮助。所以我决定使用jdbc调用。请在下面的链接中参考我对此问题的答案,或参考我的git页面-https://github.com/gowthamsb12/spark/blob/master/spark_acid
关于这个问题,请参考我的答案
fkvaft9z3#
spark现在(2.3版本)不完全兼容hive事务表。解决方法是在任何事务之后对表进行压缩。
把表改成“major”;
这种压缩应该使您能够看到数据(一段时间后数据被压缩)