无法推断org.apache.pig.builtin.sum的匹配函数有多个或没有匹配的函数请使用显式强制转换

63lcw9qa  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(274)

我想对包含长类型数字的列求和。我尝试了许多可能的方法,但仍然没有得到解决的演员错误。
我的Pig代码:

raw_ds = LOAD '/tmp/bimallik/data/part-r-00098' using PigStorage(',')  AS (
    d1:chararray, d2:chararray, d3:chararray, d4:chararray, d5:chararray,
    d6:chararray, d7:chararray, d8:chararray, d9:chararray );

parsed_ds = FOREACH raw_ds GENERATE d8  as inBytes:long, d9  as outBytes:long;

X = FOREACH parsed_ds GENERATE (long)SUM(parsed_ds.inBytes) AS inBytes;
dump X;

错误快照:
2015-11-20 02:16:26631[main]error org.apache.pig.tools.grunt.grunt-错误1045:无法推断org.apache.pig.builtin.sum的匹配函数是多个匹配函数,或者它们都不匹配。请使用显式转换。日志文件中的详细信息:/users/bimallik/pig_.log 2015-11-20 02:17:03629[main]info org.apache.pig.backend.hadoop.executionengine.mapreducelayer.mapreducelauncher-完成50%

syqv5f0l

syqv5f0l1#

@manjunathballur感谢您的投入。我改变了我的代码如下

<..same as before ...>
A = GROUP parsed_ds by inBytes;
X = FOREACH A GENERATE SUM(parsed_ds.inBytes) as h;
DUMP X;

现在a正在生成一个包含公共inbytes的包,x给出每个包的inbytes的总和,这个总和也是由多行组成的,我需要一个求和值。

4bbkushb

4bbkushb2#

我的回答可能听起来很戏剧化,但我写的是真相,我想把所有乘坐我船的人从悲伤中拉出来。我用的是本地模式的Pig。是的,在本地模式下,我得到了同样的问题。我已经尝试了互联网上所有的解决方案,但似乎没有什么对我有效。我把我的Pig从本地切换到mapreduce模式,并尝试了它工作的解决方案。在mapreduce模式下,所有的解决方案似乎都在工作。我不知道这是否是一个错误,但在本地模式下运行没有为我工作。

相关问题