首页 > 解决方案 > 将 apache crunch Pcollection 写入多个输出文件

问题描述

我有一个紧缩的 dofn 生成一个 Pcollection,当前我将 pcollection 写入单个 avro 文件我想将 Pcollection 写入多个文件。


 PCollection<String> generatedResults = results.parallelDo(new AvroGeneratorDofn(count),Avros.specifics(String.class));
    //generatedResults.write(To.avroFile(outputPath));
    pipeline.write(generatedResults,new AvroFileTarget(outputPath), Target.WriteMode.APPEND);

标签: apache-crunch

解决方案


相同的 PCollection 可以写入任意数量的目标,

generatedResults.write(To.avroFile(outputPath));
generatedResults.write(new AvroFileTarget(outputPath), Target.WriteMode.APPEND);

请参阅Apache Crunch - 入门

正如单个 Pipeline 实例可以从多个 Source 读取数据一样,Pipeline 也可以为每个 PCollection 写入多个输出。


推荐阅读