如何在spark中读取orc事务配置单元表?

ztmd8pv5  于 2021-06-26  发布在  Hive
关注(0)|答案(3)|浏览(558)

如何在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

kkih6yb8

kkih6yb81#

您需要在末尾添加一个操作以强制它运行查询:

spark.sql("Select * From Hello").show()

(这里的默认值是显示20行)

spark.sql("Select * From Hello").take(2)

查看两行输出数据。
这些只是可以在Dataframe上执行的操作的示例。

hivapdat

hivapdat2#

是的,作为一个解决办法,我们可以使用压缩,但当工作是微批量压缩不会有帮助。所以我决定使用jdbc调用。请在下面的链接中参考我对此问题的答案,或参考我的git页面-https://github.com/gowthamsb12/spark/blob/master/spark_acid
关于这个问题,请参考我的答案

fkvaft9z

fkvaft9z3#

spark现在(2.3版本)不完全兼容hive事务表。解决方法是在任何事务之后对表进行压缩。
把表改成“major”;
这种压缩应该使您能够看到数据(一段时间后数据被压缩)

相关问题