Не удается разрешить метод в Java UDF из Pig

Я использую Pig на образце Hadoop и DataFu здесь ( 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 с помощью импорта:

заранее спасибо, Лин

1 ответ

Решение

@LinMa: похоже, вы используете неправильный регистр при доступе к UDF.

Псевдоним, определенный для доступа к UDF:

определить setDifference datafu.pig.sets.SetDifference();

Вы должны использовать псевдоним при использовании / вызове метода.

GENERATE setDifference(sorted_b1,sorted_b2);
Другие вопросы по тегам