【发布时间】:2017-03-04 18:54:18
【问题描述】:
我的 UDF 输出为:-
样本记录:- ({(托德,1),(托德,1),(托德,1),(托德,1),(托德,1),(托德,5),(托德,10),(托德,20), (托德,10),(托德,10),(托德,10),(托德,10),(托德,10),(托德,10)})
({(乔恩,1),(乔恩,1),(乔恩,1),(乔恩,1),(乔恩,1),(乔恩,5),(乔恩,10),(乔恩, 20),(乔恩,10),(乔恩,10),(乔恩,10),(乔恩,10),(乔恩,5),(乔恩,20),(乔恩,1)})
UDF 的架构:- name:chararray(1 个单列)
现在我想读取这组元组并将输出生成为:-
Todd,240
Jon,422
我将 UDF 的输出存储在一个临时文件中,并使用不同的模式将其读回:-
D = LOAD '/home/training/pig/pig/UDFdata.txt' AS (B: bag {T: tuple(name:chararray, denom:int)});
之后我尝试使用 foreach 循环和引用点符号来查找总和。
X = foreach D generate B.T.name,SUM(B.T.denom);
2017-03-04 13:52:59,507 错误 org.apache.pig.tools.grunt.Grunt:错误 1128: 在名称中找不到字段 T:chararray,denom:int 详细信息位于 日志文件:/home/training/pig_1488648405070.log
你能告诉我如何找到它吗?我是 Apache Pig 的新手,所以不确定它是如何在 Bag of Tuples 中遍历并找到 sum 的。
【问题讨论】:
标签: tuples apache-pig