web-dev-qa-db-ja.com

Hive Insert Overwriteテーブル

私はHiveが初めてなので、作成した既存のテーブルが挿入上書きによって上書きされるかどうかを知りたいと思いました。作成済みのテーブルをフィルタリングし、TableAと呼び、年齢が18を超える行のみを選択します。上書きテーブルの挿入を使用してこれを実現できますか?

私は次のようなものを書くことを考えています:

INSERT OVERWRITE TABLE TableA SELECT a.Age FROM TableA WHERE a.Age > = 18

作成したテーブルにNAエントリがありますが、このテーブルをフィルター処理した後、Age列にはNAがないと思いますか?

15
Anna Mai

セルフフィルタリングと挿入は、Hiveではまだサポートされていません。

あなたの場合、次の手順をお勧めします:

  1. 同じ構造を持つ同様のテーブル、たとえばtabBを作成します。

    create table tabB like tableA;
    

2.フィルタを適用して、この新しいテーブルに挿入できます。

     INSERT OVERWRITE TABLE tabB SELECT a.Age FROM TableA WHERE a.Age > = 18

お役に立てれば。

30
K S Nidhin