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