启用了交易的Hive Bucketed Tables

时间:2015-11-23 10:01:23

标签: apache-spark hive transactional orc

因此,我们尝试创建一个带有ORC格式的Hive表,并使用以下语句为事务启用

create table orctablecheck ( id int,name string) clustered by (sno) into 3  buckets stored as orc TBLPROPERTIES ( 'transactional'='true')

该表正在Hive中创建,并且还在Metastore和Spark SQL(我们已配置为在Hive JDBC之上运行)中以直线反射

我们现在通过Hive将数据插入到此表中。但是我们在插入后看到数据在Spark SQL中没有反映出来。它只能在Hive中正确反映。

如果我们重新启动Thrift服务器,该表仅显示表中的数据。

2 个答案:

答案 0 :(得分:0)

您的桌子上是否设置了交易属性?我观察到hive事务存储结构不能与spark一起工作。您可以通过在hive控制台中查看以下命令的输出中的事务属性来确认这一点。

desc extended <tablename> ;

如果您需要访问事务表,请考虑进行主要压缩,然后尝试访问表

ALTER TABLE <tablename> COMPACT 'major';

答案 1 :(得分:0)

我在Hive中创建了一个事务表,并使用Spark(记录1,2,3)和Hive(记录4)将数据存储在其中。

重大压缩后,

  • 我可以在Hive中看到所有4条记录(使用beeline)
  • 仅在火花中记录1,2,3(使用火花壳)
  • 无法更新Hive中的记录1,2,3
  • 更新到Hive中的记录4是正常的