我正在编写一个pig程序,它加载一个用tab分隔实体的文件
例如:名称选项卡年份选项卡计数选项卡。。。
file = LOAD 'file.csv' USING PigStorage('\t') as (type: chararray, year: chararray,
match_count: float, volume_count: float);
-- Group by type
grouped = GROUP file BY type;
-- Flatten
by_type = FOREACH grouped GENERATE FLATTEN(group) AS (type, year, match_count, volume_count);
group_operat = FOREACH by_type GENERATE
SUM(match_count) AS sum_m,
SUM(volume_count) AS sum_v,
(float)sum_m/sm_v;
DUMP group_operat;
问题在于我试图创建的组操作对象。我要求所有匹配计数的和,求所有体积计数的和,然后用体积计数除以匹配计数。
在我的算术运算/对象创建中我做错了什么?我收到的一个错误是第7行第11列>pig脚本验证失败:org.apache.pig.impl.logicallayer.frontendexception:错误1031:不兼容的架构:左边是“type:null,year:null,匹配_count:null,卷_count:null“右是”group:chararray"
谢谢您。
2条答案
按热度按时间h6my8fg21#
试试这个,
上面的脚本给出了按类型和年份分组的结果,如果您只想按类型分组,则从分组中删除
cunj1qz12#
像这样尝试,这将返回type和sum。
更新了工作代码
输入文件
Pig手稿:
输出: