2016-05-19 14 views
0

私は2つの列がscorenameであり、nameがキーと値のペアのmap<string, string>であるハイブテーブルを持っています。私の質問は、scorename.keyに基づいて、キーと値のペアの1つを削除できます。Hiveマップからキーと値のペアを削除しますか?

例えば、私はそのテーブルに少数の行を持っている:

100 {"1": "A", "2": "B", "3": "C"} 
95 {"4": "D"} 
90 {"5": "E", "6": "F"} 

私はwith where score=100 and name.key='2'または、このような何かを言う削除することはできますか?

コメントは非常に役立ちます。ありがとう!!!

答えて

0

データの更新や削除のためのHadoopエコシステムは作成されていません。別々のパーティションで

1移動このデータをまわり

仕事とそのパーティションをドロップします。

又は
1と同じ構造(OLDテーブル)を有する異なるテーブルを作成

2使用して挿入し、データを取り込みます。

3テーブルを元に戻します。

4本https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-Deleteを参照してください

+0

古いテーブルの名前で新しいテーブルの名前を変更します。しかし、私は中に書くことはよく分かりませんwhereの式は、マップとマップキーの外の値に基づいて削除したいからです。 – yuan0122

関連する問題