如何将可变大小的输入从 Pig Latin 发送到用户定义函数
How to send a variable size of input from Pig Latin to User Defined Function
我在 Pig Latin/MapReduce 中使用一个简单的 UDF。 Pig Latin 查询是:
REGISTER \PigStringOperations.jar
sensitive = LOAD '/mdsba/sample2.csv' using PigStorage(',') as (AGE:int,EDU:chararray,SEX:chararray,SALARY:chararray);
BV= group sensitive by (EDU,SEX) ;
BVA= foreach BV generate sensitive.AGE as AGE;
anon = FOREACH BVA GENERATE PigStringOperations.StringSplit(sensitive.AGE);
DUMP anon;
UDF 是一个简单的 java 程序
如下图
public String exec(Tuple input) throws IOException
String data = (String)input.get(0);
if (data.contains(" "))
{
this.data2 = data.split(" ");
return this.data2[0].toString();
}
return data;}}
这取自成人数据库Adult database sample
分组 (EDU,SEX) 的 AGE 输出因元组而异,如下所示
AGE(12,10,35,20)
AGE(4,56,10)
AGE(70)
每次我 运行 我收到以下错误的程序:
ERROR 1066: Unable to open iterator for alias anon. Backend error : org.apache.pig.backend.executionengine.ExecException: ERROR 0: Scalar has more than one row in the output. 1st : (,EDU,SEX,SALARY), 2nd :(39,Bachelors,Male,<=50K)
数据分组后sensitive.AGE就是一个包!在规划 UDF 时请考虑这一点。
如果你想对你的预测进行描述,比如:
DESCRIBE BVA;
这将有助于您理解数据结构并相应地规划您的处理。
我在 Pig Latin/MapReduce 中使用一个简单的 UDF。 Pig Latin 查询是:
REGISTER \PigStringOperations.jar
sensitive = LOAD '/mdsba/sample2.csv' using PigStorage(',') as (AGE:int,EDU:chararray,SEX:chararray,SALARY:chararray);
BV= group sensitive by (EDU,SEX) ;
BVA= foreach BV generate sensitive.AGE as AGE;
anon = FOREACH BVA GENERATE PigStringOperations.StringSplit(sensitive.AGE);
DUMP anon;
UDF 是一个简单的 java 程序 如下图
public String exec(Tuple input) throws IOException
String data = (String)input.get(0);
if (data.contains(" "))
{
this.data2 = data.split(" ");
return this.data2[0].toString();
}
return data;}}
这取自成人数据库Adult database sample 分组 (EDU,SEX) 的 AGE 输出因元组而异,如下所示
AGE(12,10,35,20)
AGE(4,56,10)
AGE(70)
每次我 运行 我收到以下错误的程序:
ERROR 1066: Unable to open iterator for alias anon. Backend error : org.apache.pig.backend.executionengine.ExecException: ERROR 0: Scalar has more than one row in the output. 1st : (,EDU,SEX,SALARY), 2nd :(39,Bachelors,Male,<=50K)
数据分组后sensitive.AGE就是一个包!在规划 UDF 时请考虑这一点。 如果你想对你的预测进行描述,比如:
DESCRIBE BVA;
这将有助于您理解数据结构并相应地规划您的处理。