拨打以下电话时:
PCollection<KeyValue> data1 = pipeline.read(source1);
PCollection<KeyValue> data2 = pipeline.read(source2);
PCollection<KeyValue> data3 = data1.union(data2);
根据Apache Crunch阅读文档,用于从两个源读取的管道是否相同,然后将数据连接在一起?
答案 0 :(得分:0)
Apache Crunch Pipeline可以根据需要读取任意数量的源,然后您可以根据需要开始转换数据,例如PCollections联合,通过DoFn或MapFn传递源,以便使用MapReduce进行Documents对象组合,许多其他人。
您需要记住的一件事是,与Apache Spark相同的Apache Crunch使用延迟执行模型,这意味着在执行操作之前不会触发任何数据转换过程。下面我引用Crunch documentation的一小部分来讨论它。
Crunch使用延迟执行模型。没有作业运行或创建输出 直到用户显式调用Pipeline上的某个方法 控制工作计划和执行的界面。最简单的 这些方法是PipelineResult run()方法,它分析了 PCollections和Target输出的当前图表,并提供了一个 计划确保创建每个输出然后执行 它,仅在作业完成时返回。 PipelineResult run方法返回包含有关运行的内容的信息, 包括管道期间执行的作业数量 通过运行和每个阶段的Hadoop计数器的值 StageResult组件类。
回答你的问题,是的,相同的管道将读取两个来源。
旁注:您可能希望只有一个管道用于数据转换。