java - 在 Apache Beam 管道中结合 Java 和 Python

标签 java python transform pipeline apache-beam

是否可以在 Apache Beam 中结合 Java 和 Python 转换?

这是用例(即梦想计划):原始输入数据具有非常高的速率,因此需要使用相当快的语言(例如 Java)进行一些初始聚合。然后将聚合值提供给一些转换(在 Python 中实现),然后传递到一堆机器学习模型(在 Python 中实现)以生成一些预测,然后在一些 Java 代码中再次使用这些预测。

在 Apache Beam 中可能吗?

非常感谢您的帮助!

最佳答案

应该是可以的。您需要一个 ExternalTransform和扩展服务。

参见here执行此操作的测试管道:

counts = (lines
          | 'split' >> (beam.ParDo(WordExtractingDoFn())
                        .with_output_types(bytes))
          | 'count' >> beam.ExternalTransform(
              'beam:transforms:xlang:count', None, EXPANSION_SERVICE_ADDR))

这里 beam:transforms:xlang:count 是扩展服务应该知道的转换的 URN。此示例使用自定义 expansion service将该 URN 扩展为 Java PTransform,您可以按照相同的思路构建自己的 URN。

你可以看到这个例子是如何启动的here .

关于java - 在 Apache Beam 管道中结合 Java 和 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57384102/

相关文章:

iPhone 图像拉伸(stretch)(倾斜)

unity-game-engine - Unity 使用另一个带有函数的脚本的值更改相机位置

javascript - 如何用JavaScript访问CSS3的 "transform"属性?

java - 是否存在任何库可以提供一种流畅的方式来构造 Java 格式字符串?

java - ActiveMQ JMS : Unknown data type -1

java - 为什么read()方法在EOF处返回-1?

python - 类型错误 : only integer scalar arrays can be converted to a scalar index

python - 删除 matplotlib 文本绘图边框

python - 如何使用setText设置和获取 "comment"文本?

java - 实现请求响应设计