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 でまだ動作しないことがわかりました。これは、Hive コンソールで以下のコマンドの出力にあるトランザクション属性を調べることで確認できます。

desc extended <tablename> ;

トランザクション テーブルにアクセスする必要がある場合は、メジャー コンパクションの実行を検討してから、テーブルへのアクセスを試みてください。

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

Hive でトランザクション テーブルを作成し、Spark (レコード 1、2、3) と Hive (レコード 4) を使用してデータを格納しました。

大幅な圧縮後、

  • Hive で 4 つのレコードすべてを表示できます (beeline を使用)
  • spark で 1,2,3 のみを記録します (spark-shell を使用)
  • Hive でレコード 1、2、3 を更新できません
  • Hive のレコード 4 への更新は問題ありません
于 2016-05-04T07:34:05.910 に答える