繁体   English   中英

在Apache Beam管道中结合Java和Python

[英]Combining Java and Python in Apache Beam pipeline

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

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

在Apache Beam中可以吗?

非常感谢您的帮助!

应该有可能。 您需要一个ExternalTransform和一个扩展服务。

在这里查看执行此操作的测试管道:

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。 本示例使用了一个自定义扩展服务 ,该服务将URN扩展为Java PTransform ,您可以按照相同的方式构建自己的服务。

您可以在此处查看如何开始该示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM