如何在Spark中读取ORC格式的Hive事务表?

4

如何在Spark中读取ORC事务Hive表?

当通过Spark读取ORC事务表时,我遇到了问题。我可以获取Hive表的模式,但无法读取实际数据。

完整情况请参见:

hive> create table default.Hello(id int,name string) clustered by
(id) into 2 buckets STORED AS ORC TBLPROPERTIES
('transactional'='true');
   
hive> insert into default.hello values(10,'abc');

现在我正在尝试从Spark SQL访问Hive Orc数据,但它只显示架构。

>spark.sql("select * from  hello").show()  

输出: id,名称

3个回答

2

1

目前(2.3版本),Spark还不能完全兼容Hive事务表。解决方法是在任何事务之后对表进行压缩。

ALTER TABLE Hello COMPACT 'major';

这个压缩应该可以让您看到数据。(一段时间后数据会被压缩)


-1

你需要在最后添加一个操作来强制运行查询:

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

这里的默认设置是显示20行

或者

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

为了查看2行输出数据。

这些只是可以在DataFrame上执行的操作示例。


这个问题是关于如何从Spark中读取ORC事务表,该语句已经包含了show()。 - Abhishek Bansal
1
看了一下最后编辑时间戳,我相信原始版本没有做过修改。 - pbahr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接