UPDATE SET
の SQL Serverコマンドに相当する最良の (安価な) ものは何Hive
ですか?
たとえば、次のクエリを変換する場合を考えてみます。
UPDATE TABLE employee
SET visaEligibility = 'YES'
WHERE experienceMonths > 36
同等のHive
クエリに。
UPDATE SET
の SQL Serverコマンドに相当する最良の (安価な) ものは何Hive
ですか?
たとえば、次のクエリを変換する場合を考えてみます。
UPDATE TABLE employee
SET visaEligibility = 'YES'
WHERE experienceMonths > 36
同等のHive
クエリに。
パーティションのないテーブルがあると仮定しています。その場合、次のコマンドを実行できるはずです。
INSERT OVERWRITE TABLE employee SELECT employeeId,employeeName, experienceMonths ,salary, CASE WHEN experienceMonths >=36 THEN ‘YES’ ELSE visaEligibility END AS visaEligibility FROM employee;
他にも方法はありますが、もっと複雑です。Bejoy が説明した方法が最も効率的だと思います。
(出典: Bejoy KS ブログ)
パーティション化されたテーブルでこれを行う必要がある場合 (大量のデータがある場合に発生する可能性があります)、これを行うときにパーティションを上書きする必要があることに注意してください。
ハイブを 0.14.0 にアップグレードできます
0.14.0 以降のハイブは UPDATE 操作をサポートします。
同じことを行うには、 ACID出力形式をサポートするように Hive テーブルを作成し、 hive-site.xmlで追加のプロパティを設定する必要があります。
外部テーブルを作成し、「ローカル ディレクトリに上書きを挿入」を使用できます。列の値を変更する場合は、「CASE WHEN」、「IF」またはその他の条件付き演算を使用できます。出力ファイルを HDFS の場所にコピーします。