0

ここで Hadoop と DataFu のサンプルで Pig を使用しています ( http://datafu.incubator.apache.org/docs/datafu/guide/set-operations.html )。これが私のコードとエラー メッセージです。違う?ありがとう。

register datafu-1.2.0.jar;
define setDifference datafu.pig.sets.SetDifference();

-- ({(3),(4),(1),(2),(7),(5),(6)},{(1),(3),(5),(12)})
input = load 'input.txt' AS (B1:bag{T:tuple(val:int)},B2:bag{T:tuple(val:int)});

differenced = FOREACH input {
  -- input bags must be sorted
  sorted_b1 = ORDER B1 by val;
  sorted_b2 = ORDER B2 by val;
  GENERATE SetDifference(sorted_b1,sorted_b2);
}

-- produces: ({(2),(4),(6),(7)})
DUMP differenced;

[main] エラー org.apache.pig.tools.grunt.Grunt - エラー 1070: インポートを使用して SetDifference を解決できませんでした:

前もって感謝します、リン

4

1 に答える 1

4

@LinMa : UDF へのアクセス中に間違った大文字と小文字を使用しているようです。

UDF にアクセスするために定義されたエイリアスは次のとおりです。

setDifference を定義する datafu.pig.sets.SetDifference();

メソッドの使用中または呼び出し中にエイリアス名を使用する必要があります。

GENERATE setDifference(sorted_b1,sorted_b2);
于 2015-09-05T16:36:42.517 に答える