Java 级联和运算

Java 级联和运算,java,cascading,Java,Cascading,我对级联非常陌生。现在我知道了如何使用级联进行字数计算。接下来我想做一些求和运算。例如,我有以下输入: a b c 1000 c d e 2000 a s e 5000 我想对最后一个字段求和。如果我只是选择该字段并进行计数,它将给出如下输出: 1000 1 2000 1 5000 1 这不是我想要的!!我想把这3个数字加起来,给它起个名字,叫做“持续时间”,它看起来像: duration 8000 我可以将这个字段命名为“duration”,但我不知道如何将其自身相加,并在输出到文件中时

我对级联非常陌生。现在我知道了如何使用级联进行字数计算。接下来我想做一些求和运算。例如,我有以下输入:

a b c 1000
c d e 2000
a s e 5000
我想对最后一个字段求和。如果我只是选择该字段并进行计数,它将给出如下输出:

1000 1
2000 1
5000 1
这不是我想要的!!我想把这3个数字加起来,给它起个名字,叫做“持续时间”,它看起来像:

duration 8000
我可以将这个字段命名为“duration”,但我不知道如何将其自身相加,并在输出到文件中时将一个关键工作“duration”放在前面

这是我尝试的代码:

... // get duration Field 
// determine the word counts
Pipe pipe = new Pipe("pipe", docPipe);
pipe = new GroupBy(pipe, new Fields("duration"));
pipe = new Every(pipe, Fields.ALL, new Count(), Fields.ALL);
但是它给了我上面显示的错误输出


也许我不应该使用Count,但我试过SumBy,但它仍然不起作用。有人能帮我吗?

因为您需要所有值的总和,即只需要一个组,所以
GroupBy
的“fields”参数应该是
字段。无
。另外,由于要对duration字段求和,因此应该在
Every
中将其设置为参数选择器。以下代码符合您的要求:

pipe = new GroupBy(pipe, Fields.NONE);
pipe = new Every(pipe, new Fields("duration"), new Sum(), Fields.ALL);

由于需要所有值的总和,即只需要一个组,
GroupBy
的“fields”参数应为
fields.NONE
。另外,由于要对duration字段求和,因此应该在
Every
中将其设置为参数选择器。以下代码符合您的要求:

pipe = new GroupBy(pipe, Fields.NONE);
pipe = new Every(pipe, new Fields("duration"), new Sum(), Fields.ALL);

当你想总结的时候,也许你不应该数数?到目前为止你尝试了什么?发布与您的问题相关的源代码!什么是
管道
,什么是
GrouBy
每一个
字段
?当你想总结时,也许你不应该计数?到目前为止你尝试了什么?发布与您的问题相关的源代码!什么是
管道
,什么是
地面
每个
字段