2015-01-26 5 views
0

Я пытаюсь использовать python udf, но он бросает ниже ошибки. Я использую CDH5.2Ошибка при использовании python udf в Pig

cat /home/spanda20/pig_data/panda1.py 
def get_length(data): 
    return len(data) 

REGISTER '/home/spanda20/pig_data/panda1.py' USING jython as my_udf; 

grunt> A = LOAD 'hdfs://itsusmpl00509.jnj.com:8020/user/spanda20/pig_1.dat' USING PigStorage(',') AS (name:chararray, id:int); 
grunt> B = FOREACH A GENERATE name, id,my_udf.get_length(name) as name_len; 

2015-01-25 20: 47: 15243 [главная] ОШИБКА org.apache.pig.tools.grunt.Grunt - ОШИБКА 1070: Не удалось разрешить my_udf .get_length с помощью импорта: [, java.lang, org.apache.pig.builtin, org.apache.pig.impl.builtin...] подробности на логфайл: /home/spanda20/pig_1422230028021.log

+0

Что такое контент в доме/spanda20/pig_1422230028021.log –

+0

Можете ли вы разместить соответствующие части этого файла журнала? Я смог успешно запустить ваш UDF на HDP 2.2 (Pig 0.14, Hadoop 2.6) с минимальным набором тестов. – rchang

+0

ОШИБКА 1070: Не удалось разрешить my_udf.get_length с помощью импорта: [, java.lang., Org.apache.pig.builtin., Org.apache.pig.impl.builtin.] Не удалось выполнить синтаксический анализ: сценарий свиньи не удался parse: <строка 14, столбец 32> Не удалось создать логический план. Вложенное исключение: org.apache.pig.backend.executionengine.ExecException: ERROR 1070: Не удалось разрешить my_udf.get_length с использованием импорта: [, java.lang., Org.apache.pig.builtin., Org.apache.pig.impl .builtin.] – user3858193

ответ

4

Иногда, после свиньи РЕГИСТРАЦИЯ команда не работает f или UDF, возможно, вам придется перезапустить клиент для PIG, чтобы перезагрузить UDF