Google cloud dataflow ApacheBeam中此数据流(1.9.x)管道代码的等效代码是什么?

Google cloud dataflow ApacheBeam中此数据流(1.9.x)管道代码的等效代码是什么?,google-cloud-dataflow,apache-beam,dataflow,Google Cloud Dataflow,Apache Beam,Dataflow,目前,我已经在Dataflow SDK 1.9.x的生产环境中运行了遗留代码库。从8月15日起,我们将无法使用旧SDK提交作业,我们必须使用ApacheBeam将其升级到最新版本 我在重构代码库的过程中发现,努力并不像改变包名称那样简单。其中之一是,我们有相当复杂的逻辑,使用累加器、组合、协合等 下面是我们的代码库(我们有更多的代码) PCollection keyValueTracking=。。。 Combine.KeyedCombineFn perProductActivitySummary

目前,我已经在Dataflow SDK 1.9.x的生产环境中运行了遗留代码库。从8月15日起,我们将无法使用旧SDK提交作业,我们必须使用ApacheBeam将其升级到最新版本

我在重构代码库的过程中发现,努力并不像改变包名称那样简单。其中之一是,我们有相当复杂的逻辑,使用累加器、组合、协合等

下面是我们的代码库(我们有更多的代码)

PCollection keyValueTracking=。。。
Combine.KeyedCombineFn perProductActivitySummaryCombined=。。。;
PCollection combinedResult=keyValueTracking.apply(
帕基先生(
composeFns.composeKeyed()
.带有(identityFn、PerProductActivitySummary组合、PerProductSummary标记)
.带有(identityFn、GeneralUserSummary组合、GeneralSummary标记)
.with(identityFn、firstLastEventCombined、firstLastEventTag)
).named(“cocoCombinedPerkey_389;”+keyValueTracking.getName())
我的重点是如何轻松地将这段代码转换为Apache beam。由于正在进行重构,目前我无法编译我的代码库+我的想法错误工具提示也没有帮助(消息太长,可以详细查看)

是否有任何示例代码可以等效地执行上面的代码


谢谢。

您可以在数据流文档中找到

我可以指出的一点是使用了
.named()
方法,该方法已被删除,现在需要使用
PCollection.apply(“name”,pttransform)


由于您的代码比这多,我建议您查看指南和,以了解需要进行哪些更改以及如何进行这些更改。

最简单的方法是在此处阅读,比较相同的函数,并创建自己的内部映射以了解更改。
  PCollection<KV<String, TrackingData>> keyValueTracking = ...
   Combine.KeyedCombineFn<String, TrackingData, UserEventActivityCountSummaryPerParameter, UserEventActivityCountSummaryPerParameter> perProductActivitySummaryCombined = ...;


PCollection<KV<String, CombineFns.CoCombineResult>> combinedResult = keyValueTracking.apply(
        Combine.perKey(
            CombineFns.composeKeyed()
                .with(identityFn, perProductActivitySummaryCombined, perProductSummaryTag)
                .with(identityFn, generalUserSummaryCombined, generalSummarytag)
                .with(identityFn, firstLastEventCombined, firstLastEventTag)
        ).named("coCombinedPerKey_"+keyValueTracking.getName())