这两个注释有什么区别?
DoFn.Setup
:用于准备实例以处理元素束的方法。
使用“bundle”一词,不带参数。
DoFn.StartBundle
:用于准备实例以处理批量元素的方法。
使用“batch”一词,可以使用零个或一个参数(StartBundleContext
, 一种访问PipelineOptions
的方式)。
我的目标
我需要在DoFn实例中初始化库,然后将该库用于“batch”或“bundle”中的每个元素。通常情况下,我不会纠结这两个词的区别,但在管道中可能存在一些差异?
DoFn
构造函数并创建管道。DoFn
序列化并发送到工作节点。DoFn
时,它会调用setup
方法。startBundle
和finishBundle
(所有bundle元素均已处理完毕)。processElement
方法。tearDown
方法被调用-->没有更多的bundle需要处理。