2016-06-28 11 views
0

を働いていません。どうすればこれを達成できますか?対応するハイブ-site.xmlで設定を更新した後削除するには、テーブルには、私はその列C私は</p> <pre><code>delete * from A where A.p >= (select max(t.c) from B t) </code></pre> <p>をしようとしたが、それが動作していないテーブルB</p> <p>の列cの最大値よりも大きい場合、テーブルAから行を削除したい

hive.enforce.bucketing    true 

hive.exec.dynamic.partition.mode nonstrict 

答えて

1

INSERT ... VALUES、UPDATE、およびDELETE文は、ハイブ-site.xmlの設定ファイルに次のプロパティ値を必要とします、サービスを再起動します - HiveServer2とHive Metastore。

はその後、

delete from A 
where A.p >= (select max(t.c) from B t) 
+1

どのバージョンのハイブについてお話ししていますか? – MysticForce

+1

Hiveバージョン0.14.0:INSERT ... VALUES、UPDATE、およびDELETEは、完全なACIDサポートで利用可能になりました。 –

1

このHQLを使用した問題のカップルがここにあります

  1. DELETE support自体はハイブ0.14のみから提供されています。
  2. DELETE構文にアスタリスク( "*")を使用しないでください。公式Hive Delete syntaxを参照してください。

  3. また、MysticForceによって正しく指摘されているように、where句のSubqueriesはIN、NOT IN、EXISTS、NOT EXISTS文でのみサポートされています。 Subqueries syntax in manualを参照してください。

+1

サブクエリは、ハイブのwhere句内で相関なしで動作しますか? – MysticForce

+0

@MysticForce - 使用されるサブクエリは、 "相関サブクエリ"ではありません。定義によって、相関サブクエリは外部クエリの値を使用するサブクエリ(別のクエリ内でネストされたクエリ)です。この例では、サブクエリは外部クエリの値を使用しません。 MAX値を個別に計算するだけです。 – janeshs

+1

where句のサブクエリは、IN、NOT IN、exists、not exists文でのみサポートされています。 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SubQueries – MysticForce

関連する問題

 関連する問題