gpt4 book ai didi

java - Apache 梁: What is the difference between DoFn and SimpleFunction?

转载 作者:行者123 更新时间:2023-12-01 11:38:38 25 4
gpt4 key购买 nike

在阅读有关使用 Java 处理 Apache Beam 中的流媒体元素时,我遇到了 DoFn<InputT, OutputT>然后穿过SimpleFunction<InputT, OutputT> .

这两个看起来都与我相似,我发现很难理解其中的区别。

有人可以用外行术语解释区别吗?

最佳答案

从概念上讲,您可以想到 SimpleFunctionDoFn 的简单案例:

  • SimpleFunction<InputT, OutputT> :
  • 简单的输入到输出映射函数;
  • 单一输入产生单一输出;
  • 静态类型,你必须 @Override apply()方法;
  • 不依赖于计算上下文;
  • 不能使用 Beam 状态 API;
  • 示例用例:MapElements.via(simpleFunction)逐个转换/修改元素,为每个元素生成一个输出;
  • DoFn<InputT, OutputT> :
  • ParDo 执行;
  • 暴露于上下文(时间戳、窗口 Pane 等);
  • 可以消耗侧输入;
  • 可以产生多个输出或根本没有输出;
  • 可以产生副产品;
  • 可以使用 Beam 的持久状态 API;
  • 动态输入;
  • 示例用例:从流中读取对象、过滤、累积它们、执行聚合、转换它们并分派(dispatch)到不同的输出;

  • 您可以为 ParDos in the dev guide 找到更具体的示例和用例。 .

    This part提到 MapElements ,这是 SimpleFunctions 的用例

    关于java - Apache 梁: What is the difference between DoFn and SimpleFunction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50525766/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com