1

次のデータを含むファイルに2つのデータセットがあります(各ファイルに約500ミリノン行)。

Dataset1:
a1
a2
a3
a4

Dataset2:
a1
a2

Dataset2に存在しないDataset1の要素を検索したいので、結果は次のようになります。

Dataset3
a3
a4

Hadoopでこれを行うための最良の方法は何ですか?参加関連のメカニズム、または豚、または他の何か?ありがとう。

4

2 に答える 2

5

HIVEを使えば簡単にできます。
1.テーブルを作成する
2.データをロードする
3. クエリ、単純な LEFT JOIN:

SELECT Dataset1.a LEFT JOIN Dataset1.a=Dataset2.a WHERE Dataset2.a IS NULL

終わり!GL!

于 2013-03-09T01:58:58.663 に答える
4

COGROUPこれは、オペレーターを使用して Pig で簡単に行うことができます。

dataset1 = LOAD '/path/to/dataset1' USING PigStorage('\n') AS (line:chararray);
dataset2 = LOAD '/path/to/dataset2' USING PigStorage('\n') AS (line:chararray);

grpd = COGROUP dataset1 BY line, dataset2 BY line;
d1_only = FOREACH (FILTER grpd BY IsEmpty(dataset2)) GENERATE FLATTEN(dataset1);
于 2013-03-10T01:02:36.803 に答える