DoFn
和PTransform
都是为PCollection
定义操作的方法。我们怎么知道何时使用?
答案 0 :(得分:12)
理解它的一种简单方法是使用map(f)
来表示列表:
map
将函数应用于列表的每个元素,返回结果的新列表。你可以称之为计算模式。f
是应用于每个元素的逻辑。现在,转而谈谈Beam特定内容,我想你问的是ParDo.of(fn)
,这是一个PTransform
。
PTransform
是一项以PCollections
作为输入并将PCollections
作为输出的操作。 Beam只有五种基本类型PTransform
,封装了令人尴尬的并行计算模式。ParDo
是每元素计算的计算模式。它有一些变化,但你不需要担心这个问题。DoFn
,我称之为fn
,是应用于每个元素的逻辑。考虑到你写一个DoFn
来说明要对每个元素做什么,并且Beam runner提供ParDo
来应用它也可能有所帮助你的逻辑。