SDK调用流程
Beam SDK的通常使用套路是这样的:
1. Pipeline p = Pipeline.create(options); // 创建pipeline
2. p.apply(PTransform t)…… // 对pipeline实施一系列变换
3. p.run().waitUntilFinish(); // 由Runner实现run()方法
PTransform
PTransform<InputT, OutputT>
是 取走一个 InputT(PInput的子类型) 并 生成一个 OutputT(POutput的子类型) 的操作。
通常的 PTransforms包括:
- root PTransforms,如TextIO.Read,Create,输入为PBegin
- 处理和变换操作,如ParDo, GroupByKey, CoGroupByKey, Combine 和 Count
- 输出类型的PTransforms,如TextIO.Write,输出为PEnd
- 用户也可以自定义应用相关的复合PTransform,复合变换只需实现
expand(InputT)
方法,由输入计算输出
pipeline.apply()方法,也根据上述类型的不同,重载了多个方法。