ハイブテーブルの特定のレコードを上書きする方法は?
例:
私は100レコードを持つテーブルt1を持っています。今私はこれらの100レコードのうち30レコードだけを上書きしなければなりません。ハイブテーブルのレコードを更新する
どうすればできますか?
ハイブテーブルの特定のレコードを上書きする方法は?
例:
私は100レコードを持つテーブルt1を持っています。今私はこれらの100レコードのうち30レコードだけを上書きしなければなりません。ハイブテーブルのレコードを更新する
どうすればできますか?
Hiveは、Hive-0.14のACIDプロパティをサポートしています。 Hiveトランザクションを使用すると、既存のレコードを更新または削除できます。
更新および削除操作を実行する際に従うべきルールはほとんどありません。詳細と実装については、Hiveトランザクションでto this blogを参照することができます。
私の評判は直接あなたのコメントにお答えするには低すぎるが、ここでそれを達成する方法があります:
INSERT OVERWRITE TABLE table_a
SELECT * FROM table_a a WHERE a.id NOT IN (SELECT id FROM table_b)
UNION ALL
SELECT * FROM table_b;
この場合、 'NOT IN'は' NOT EXISTS'と同じように動作しますか? [documentation](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-HingTablesfromqueries)は、特にNOT EXISTSを使用するように指示します。 – Andrew
基本的に、私は2つのテーブルをマージする必要があります。 2つのテーブルが一致するIDを持つ場合、第1テーブルのレコードは第2テーブルのレコードによって上書きされなければなりません。第2テーブルのレコードは第1テーブルに挿入されます。 – Parameshwar