2

因此,我们正在尝试使用以下语句创建一个带有 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 之上运行)中都反映在 Beeline 中

我们现在通过 Hive 将数据插入到这个表中。然而,我们看到插入后数据并没有反映在 Spark SQL 中。它仅在 Hive 中正确反映。

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

4

2 回答 2

0

你的表是否设置了事务属性?我观察到 hive 事务存储结构还不能与 spark 一起使用。您可以通过在配置单元控制台中查看以下命令输出中的事务属性来确认这一点。

desc extended <tablename> ;

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

ALTER TABLE <tablename> COMPACT 'major';
于 2016-02-22T04:02:14.360 回答
0

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

大面积压实后,

  • 我可以在 Hive 中看到所有 4 条记录(使用直线)
  • 在 spark 中只记录 1,2,3 (使用 spark-shell)
  • 无法更新 Hive 中的记录 1、2、3
  • 在 Hive 中更新到记录 4 是可以的
于 2016-05-04T07:34:05.910 回答