所以我的瀑布里有一个巨大的管子,看起来像这样:
K1 - V1
K1 - V2
K1 -V3
K2 - V4
K2- V5
K2-V6
是否仍要使用every管道聚合它们,以使输出看起来像以下几行:
K1 - {V1, V2, V3}
K2 - {V4, V5, V6}
谢谢您!
编辑:
到目前为止我的代码是:
我在给每根管子打电话
OutputPipe = new Every(OutputPipe, Fields.ALL, SomeBuffer());
我正在重写缓冲区中的operate方法:
@Override
public void operate( FlowProcess flowProcess, BufferCall bufferCall )
{
TupleEntry group = bufferCall.getGroup();
// get all the current argument values for this grouping
Iterator<TupleEntry> arguments = bufferCall.getArgumentsIterator();
// create a Tuple to hold our result values
String result = "";
String key = "";
if (arguments.hasNext()) {
TupleEntry argument = arguments.next();
key = argument.getString("key") + "\t";
}
while (arguments.hasNext()) {
TupleEntry argument = arguments.next();
result += argument.getString("value") + "\t";
}
bufferCall.getOutputCollector().add(new Tuple(key, result));
}
我得到的结果有点奇怪。我不断地从文件中读取奇怪的结果,所以我猜我在每个管道中的逻辑都是错误的。
暂无答案!
目前还没有任何答案,快来回答吧!