【问题标题】:Apache Beam: DoFn vs PTransformApache Beam:DoFn 与 PTransform
【发布时间】:2018-05-22 05:47:48
【问题描述】:

DoFnPTransform 都是为PCollection 定义操作的方法。我们如何知道何时使用哪个?

【问题讨论】:

    标签: google-cloud-dataflow apache-beam


    【解决方案1】:

    一个简单的理解方法是类比map(f) for lists:

    • 高阶函数map 将函数应用于列表的每个元素,返回结果的新列表。您可以称其为计算模式。
    • 函数f 是应用于每个元素的逻辑。

    现在,切换到讨论 Beam 的细节,我想你是在问 ParDo.of(fn),这是一个 PTransform

    • PTransform 是一个将PCollections 作为输入并产生PCollections 作为输出的操作。 Beam 只有五种基本类型的PTransform,封装了令人尴尬的并行计算模式。
    • ParDo 是逐元素计算的计算模式。它有一些变化,但你不必担心这个问题。
    • DoFn,这里我称之为fn,是应用于每个元素的逻辑。

    您还可以考虑以下事实:写一个DoFn 来说明对每个元素执行的操作,而Beam runner 提供ParDo 来应用您的逻辑。

    【讨论】:

      猜你喜欢
      • 2018-11-04
      • 2020-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多