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