如何在猪中使用字符串函数

时间:2014-07-29 19:06:05

标签: hadoop apache-pig

我正在尝试使用其中一个内置函数将字符串转换为猪的大写字母。我在当地模式下使用猪。

emps.csv

1,John,35,M,101,50000.00,03/03/79
2,Jack,30,F,201,3540000.00,09/10/84

用于加载数据的命令(WORKS FINE)

empdata = load 'emps.csv'  using PigStorage(',') as (id:int,name:chararray,age:int,gender:chararray,deptId:int,sal:double);
dump empdata

转换为大写并打印(FAILS WITH ERROR)

empnameucase = foreach empdata generate id,upper(name);

但是我在执行上述命令后遇到异常:

错误日志:

Caused by: org.apache.pig.backend.executionengine.ExecException: ERROR 1070: Could not resolve upper using imports: [, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.]
        at org.apache.pig.impl.PigContext.resolveClassName(PigContext.java:653)
        at org.apache.pig.impl.PigContext.getClassForAlias(PigContext.java:769)
        at org.apache.pig.parser.LogicalPlanBuilder.buildUDF(LogicalPlanBuilder.java:1491)
        ... 28 more

请指导。

1 个答案:

答案 0 :(得分:1)

试试这个, 您应该在UPPER情况下指定函数名称,如

UPPER(name)

Hopt,它应该有用。