Google cloud dataflow Apache Beam:DoFn vs PTransform

Google cloud dataflow Apache Beam:DoFn vs PTransform,google-cloud-dataflow,apache-beam,Google Cloud Dataflow,Apache Beam,DoFn和p转换都是定义p收集操作的一种方法。我们如何知道何时使用哪个?一个简单的理解方法是通过与列表的map(f)进行类比: 高阶函数map将函数应用于列表的每个元素,返回结果的新列表。你可以称之为计算模式 函数f是应用于每个元素的逻辑 现在,切换到讨论光束的细节,我想你是在问ParDo.of(fn),这是一种p变换 p转换是一种将p集合作为输入并产生p集合作为输出的操作。Beam只有五种基本类型的PTransform,封装了令人尴尬的并行计算模式 ParDo是每元素计算的计算模式。它有

DoFn
p转换
都是定义
p收集操作的一种方法。我们如何知道何时使用哪个?

一个简单的理解方法是通过与列表的
map(f)
进行类比:

  • 高阶函数
    map
    将函数应用于列表的每个元素,返回结果的新列表。你可以称之为计算模式
  • 函数
    f
    是应用于每个元素的逻辑
现在,切换到讨论光束的细节,我想你是在问
ParDo.of(fn)
,这是一种
p变换

  • p转换
    是一种将
    p集合
    作为输入并产生
    p集合
    作为输出的操作。Beam只有五种基本类型的
    PTransform
    ,封装了令人尴尬的并行计算模式
  • ParDo
    是每元素计算的计算模式。它有一些变化,但是你不需要为这个问题担心
  • DoFn
    ,在这里我称之为
    fn
    ,是应用于每个元素的逻辑
还可以考虑这样一个事实:您编写了一个
DoFn
来说明在每个元素上要做什么,而梁运行器提供了
ParDo
来应用您的逻辑