3
event1  id1 foo_id1
event1  id1 foo_id2
event1  id1 foo_id3
event1  id1 foo_id4
event1  id1 foo_id1
event1  id2 foo_id1
event1  id2 foo_id2
event1  id3 foo_id1
event1  id1 foo_id1
event1  id3 foo_id3
event1  id4 foo_id1
event1  id4 foo_id2
event1  id1 foo_id1
event1  id4 foo_id3
event1  id4 foo_id4
event2      foo_id1
event2      foo_id2
event2      foo_id3
event2      foo_id3

すべてのイベント (つまり、event1、event2) には foo_id があります。「event1」のすべてのイベントについて、これらの foo_id が event2 で何回発生したかを知りたいです。

次のような o/p が必要です。

id1    foo_id1  1
id1    foo_id2  1
id1    foo_id3  1
id2    foo_id1  1
id2    foo_id2  1

期待される形式でデータを返すハイブ スクリプトを作成する方法

INSERT OVERWRITE TABLE table1
SELECT  e1.id, e1.foo_id, count(e2.foo_id)
FROM events e1
LEFT OUTER JOIN events e2
ON e1.foo_id = e2.foo_id 
WHERE e2.event = 'event2' 
AND e1.event = 'event1' 
GROUP BY e1.id, e1.foo_id;

上記のハイブスクリプトを試しました。ただし、o/p は次のように表示されます。

    id1 foo_id1 4
    id1 foo_id2 1
    id1 foo_id3 2
    id2 foo_id1 1
    id2 foo_id2 1

予想される形式でデータを返すハイブ スクリプトを作成する方法は?

4

1 に答える 1