0

ハイブに 2 つのテーブルがあります:

テーブル 1:

1,Nail,maher,24,6.2
2,finn,egan,23,5.9
3,Hadm,Sha,28,6.0
4,bob,hope,55,7.2

表 2 :

1,Nail,maher,24,6.2
2,finn,egan,23,5.9
3,Hadm,Sha,28,6.0
4,bob,hope,55,7.2
5,john,hill,22,5.5
6,todger,hommy,11,2.2
7,jim,cnt,99,9.9
8,will,hats,43,11.2

テーブル 1 に存在しないテーブル 2 の新しいデータを Hive で取得する方法はありますか??

他のデータベース ツールでは、内側の左/右を使用します。しかし、Hiveには内側の左/右が存在せず、これをどのように達成できるかを提案していますか?

4

2 に答える 2

0

NOT IN をテストする前に、フィールドを連結する方が賢明かもしれません。

SELECT * 
FROM t2 
WHERE CONCAT(t2.firstname, t2.lastname, CAST(t2.val1 as STRING), CAST(t2.val2 as STRING)) NOT IN
    (SELECT CONCAT(t2.firstname, t2.lastname, CAST(t2.val1 as STRING), CAST(t2.val2 as STRING))
    FROM t1)

順次 NOT IN サブクエリを実行すると、誤った結果が生じる場合があります。

上記の例から、値 ('nail','egan',28, 7.2) を持つ新しいレコードは、連続する NOT IN ステートメントでは新規として表示されません。

于 2016-05-24T05:09:41.860 に答える