ERROR 1070 Apache Pig,使用内置UDF

时间:2015-10-29 21:28:21

标签: hadoop apache-pig user-defined-functions udf

Thisthisthis并未解决我的问题。他们都在制作自己的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中工作。

1 个答案:

答案 0 :(得分:0)

Pig对资本化有点挑剔,你需要资本化RewriteCond %{QUERY_STRING} . RewriteRule ^ - [F] 。例如,我可以在新的Hortonworks Sandbox上运行此代码。

log

+

$ hdfs dfs -cat /tmp/kg.csv
one,1
two,2
three,3