2024-06-08 14:08:32 发布
网友
我有一些用Python编写的分析代码。目前我正在使用Storm处理流。因为Storm允许使用消息序列化调用python代码,所以我可以在Storm bolts中从Java/Scala调用python代码。在
我找到了Pykka,它是actor模型的Python实现。我想知道是否有一种方法可以从Akka actors调用Python代码?例如,有没有可能把阿克卡演员的信息传递给皮卡演员?在
您还可以使用^{}在actor JVM中运行嵌入的CPython,以完全访问本机(C)Python包。在
CPython
Python
请参见幻灯片5 Mixing Python and Java。在
如果您需要的Python包不是线程安全的,那么可以使用远程Akkaactors。 见https://github.com/alpinedatalabs/alpine-r/blob/35209af47f896450e4f8f8745a80595d01035ca3/server/src/main/resources/application.conf#L4
Akka
要使Scala到Python更平滑,请尝试^{}-也是在Jep之上构建的。在
Scala
Jep
从技术上讲,使用^{}-GPL的R也可以使用类似的方法,不幸的是,在运行embedded时必须小心。在
GPL
我怀疑这两个远程actor模型实现的wire协议是否可以很容易地桥接起来,但是您可以在Scala代码和Python应用程序之间使用0MQ。Akka允许message passing over 0MQ,因此经过一些设置之后,Scala代码可以像其他参与者一样处理Python应用程序,尽管我不确定这在Python方面意味着什么。在
另一个值得考虑的可能性是使用Jython在JVM上运行Python分析代码。您可以让Scala参与者调用Jython函数/方法。但是,如果Python代码使用C扩展模块,则必须找到替代方法。在
另一种可能(也假设您没有使用C扩展模块)是尝试一下转换器py2scala;对于数据分析代码,它可能做得不错。想必这会给你最好的解决方案。在
您还可以使用^{} 在actor JVM中运行嵌入的
CPython
,以完全访问本机(C)Python
包。在请参见幻灯片5 Mixing Python and Java。在
如果您需要的Python包不是线程安全的,那么可以使用远程
Akka
actors。 见https://github.com/alpinedatalabs/alpine-r/blob/35209af47f896450e4f8f8745a80595d01035ca3/server/src/main/resources/application.conf#L4要使} -也是在
Scala
到Python
更平滑,请尝试^{Jep
之上构建的。在从技术上讲,使用^{} -
GPL
的R也可以使用类似的方法,不幸的是,在运行embedded时必须小心。在我怀疑这两个远程actor模型实现的wire协议是否可以很容易地桥接起来,但是您可以在Scala代码和Python应用程序之间使用0MQ。Akka允许message passing over 0MQ,因此经过一些设置之后,Scala代码可以像其他参与者一样处理Python应用程序,尽管我不确定这在Python方面意味着什么。在
另一个值得考虑的可能性是使用Jython在JVM上运行Python分析代码。您可以让Scala参与者调用Jython函数/方法。但是,如果Python代码使用C扩展模块,则必须找到替代方法。在
另一种可能(也假设您没有使用C扩展模块)是尝试一下转换器py2scala;对于数据分析代码,它可能做得不错。想必这会给你最好的解决方案。在
相关问题 更多 >
编程相关推荐