我有多个具有相同列的文件,我正在尝试使用sum来聚合两列中的值。
柱结构如下
ID first_count second_count name desc
1 10 10 A A_Desc
1 25 45 A A_Desc
1 30 25 A A_Desc
2 20 20 B B_Desc
2 40 10 B B_Desc
我如何计算第一次和第二次的总和?
ID first_count second_count name desc
1 65 80 A A_Desc
2 60 30 B B_Desc
下面是我写的脚本,但当我执行它时,我得到一个错误“无法推断sum的匹配函数,因为它们都不适合。请使用显式强制转换。
A = LOAD '/output/*/part*' AS (id:chararray,first_count:chararray,second_count:chararray,name:chararray,desc:chararray);
B = GROUP A BY id;
C = FOREACH B GENERATE group as id,
SUM(A.first_count) as first_count,
SUM(A.second_count) as second_count,
A.name as name,
A.desc as desc;
1条答案
按热度按时间i86rm4rw1#
你的加载语句是错误的。第一个\u计数,第二个\u计数作为字符加载。sum不能添加两个字符串。如果您确定这些列将只接受数字,则将它们加载为int-
应该有用。