如何在spark中读取orc事务hive表?
我在阅读ORC交易表时遇到问题 火花我得到蜂巢表的架构,但无法读取实际数据
查看完整方案:
蜂房> create table default.Hello(id int,name string) (id)分为两个存储桶存储为ORC TBLPROPERTIES ( '交易'= '真');
蜂房>插入default.hello值(10,'abc');
现在我试图从Spark sql访问Hive Orc数据,但它显示 只有架构
spark.sql(“select * from hello”)。show()
输出:id,name
答案 0 :(得分:0)
您需要在最后添加操作以强制它运行查询:
spark.sql("Select * From Hello").show()
(此处默认显示20行)
或
spark.sql("Select * From Hello").take(2)
查看2行输出数据。
这些只是可以在DataFrame上执行的操作的示例。
答案 1 :(得分:0)
spark目前不完全兼容hive事务表(2.3版)。解决方法是在进行任何事务处理后在表上进行压缩。
ALTER TABLE Hello COMPACT'major';
这种压缩应该使您能够查看数据。 (一段时间后,数据将被压缩)
答案 2 :(得分:0)
是的,作为一种解决方法,我们可以使用压缩,但是当工作是微型批处理时,压缩将无济于事。所以我决定使用JDBC调用。请在下面的链接中参考我对这个问题的答案,或者参考我的GIT页面-https://github.com/Gowthamsb12/Spark/blob/master/Spark_ACID