7

パーティションを使用したハイブ クエリで「!=」記号を使用する必要があります。私は何かを試しました

from sample_table
insert overwrite table sample1
partition (src='a')
select * where act=10
insert overwrite table sample1
partition (src!='a')
select * where act=20

しかし、'!=' 記号でエラーが表示されます。!= を置き換えるにはどうすればよいですか

4

3 に答える 3

13

ハイブでrlike/regex関数を使用して条件を指定してみてください。

<>not 演算子notも使えると思います!=

于 2013-02-20T05:48:23.023 に答える
3

partition (src!='a')- "select *" の結果を "a" の代わりに任意のパーティションに書き込むには、Hive に何を期待しますか? ご覧 partition (src='a')のとおり、「a」という名前のテーブルのパーティションに select ステートメントを実行した結果を書き込んでいることを意味します。「PARTITION (a=b)」は「WHERE a=b」のような条件付きコマンドではなく、パーティションの名前を指定するだけです。別のパーティション名を指定するだけなので、クエリは次のようになります。

from sample_table insert overwrite table sample1 partition (src='a') select * where act=10 insert overwrite table sample1 partition (src='b') select * where act=20;

その後、テーブル "sample1" に 2 つの新しいパーティション "a" と "b" が表示され、これらのパーティションselect * where act=10select * where act=20クエリからのデータがそれぞれ表示されます。

于 2013-02-19T15:17:37.583 に答える
0

ハイブのバージョンを教えてください。A <> B を使用してみてください

Hive DOCS からの説明: A または B が NULL の場合は NULL、式 A が式 B と等しくない場合は TRUE、それ以外の場合は FALSE。

于 2015-07-22T15:51:40.797 に答える