Ошибка PIG UDF. Можно решить с помощью импорта.

Здравствуйте, у меня возникла проблема с запуском скрипта свиньи.

Вот мой сценарий свиньи:

REGISTER 'python_udf.py' USING jython AS myfuncs;
dataframe = LOAD 'udftest.csv' using PigStorage(',') AS (x:int);
result1 = foreach dataframe generate myfuncs.testudf(x);
dump result1;

Вот мой скрипт на питоне:

@schemaFunction("a:int")
def testudf(test):
a = test - 1
return a

Ошибка, которую я получаю:

«Ошибка во время синтаксического анализа. Не удалось разрешить myfuncs.testudf с помощью импорта: [, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.] Не удалось выполнить синтаксический анализ: скрипт Pig не удалось проанализировать : "


person bjurstrs    schedule 23.06.2015    source источник


Ответы (1)


В документации по свинью в разделе Декораторы указано и схемы

schemaFunction — определяет функцию делегата и не регистрируется в Pig.

а также

outputSchema — определяет схему для пользовательской функции скрипта в формате, который Pig понимает и может анализировать.

поэтому постарайтесь

@outputSchema('a:int')

как ваш декоратор.

person gobrewers14    schedule 23.06.2015