【发布时间】:2016-01-30 05:25:46
【问题描述】:
This、this 和 this,没有解决我的问题。他们都在制作自己的UDF。我想使用内置的 UDF。 任何 内置 UDF。对于我尝试过的每个 UDF,我都会收到相同或类似的错误。
FOO = LOAD 'filepath/data.csv'
USING PigStorage(',')
AS (name:string, age:int, kilograms:double);
BAR = FOREACH FOO GENERATE $0, $1, $2, kilograms*2.2 AS pounds;
这按预期工作,基本上创建与 FOO 相同的关系,但有一个额外的列,将 KG 转换为 LBS。
但是,如果我想使用诸如获取公斤的对数刻度之类的东西,如下所示:
BAR2 = FOREACH FOO GENERATE $0, $1, $2, log(kilograms) AS logscaleKG;
我收到以下错误(或类似错误):
ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1070: Could not resolve log using imports: [, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.]
似乎没有 UDF 在 FOREACH GENERATE 中起作用。
【问题讨论】:
-
你是如何安装 Pig 的?看来您的 PATH 设置不正确。
标签: hadoop apache-pig user-defined-functions udf