我有一些用Python編寫的分析代碼。目前我正在使用Storm來處理流。因爲Storm允許使用消息序列化來調用python代碼,所以我在Storm風格的螺栓中調用Java/Scala中的Python代碼。我發現Pykka這是actor模型的Python實現。我想知道是否有辦法從Akka actors中調用Python代碼?例如,是否有可能將來自Akka演員的消息傳遞給Pykka演員?使用Akka actors來調用或傳遞消息給Python代碼
3
A
回答
3
我懷疑兩個遠程actor模型實現的線程協議可以很容易地橋接,但是您可以在Scala代碼和Python應用程序之間使用0MQ。 Akka允許message passing over 0MQ,所以經過一些設置之後,Scala代碼可以像其他任何演員一樣處理Python應用程序,但我不確定Python端會有什麼含義。
另一個值得考慮的可能性是使用Jython在JVM上運行Python分析代碼。您可以讓Scala actor調用Jython函數/方法。但是如果你的Python代碼使用C擴展模塊,你必須找到其他選擇。
另一種可能性(假設您沒有使用C擴展模塊)是給轉換器py2scala一個嘗試;對於數據分析代碼來說,它可能做的不錯。想必這會給你最高性能的解決方案。
0
您也可以使用Jep
在參與者JVM中運行嵌入式CPython
以完全訪問本地(C)Python
包。
請參見幻燈片5 Mixing Python and Java。
如果您需要的Python包不是線程安全的,那麼可以使用遠程Akka
參與者。 見https://github.com/alpinedatalabs/alpine-r/blob/35209af47f896450e4f8f8745a80595d01035ca3/server/src/main/resources/application.conf#L4
爲了使Scala
到Python
平滑嘗試ScalaPy
- 也是建立在Jep
頂部。
從技術上講,類似的東西也應該適用於R使用Renjin
- GPL
,不幸的是,所以必須小心運行嵌入式。
相關問題
- 1. 使用akka actors來遍歷目錄樹
- 2. 將消息傳遞給C++調用者
- 3. 如何使用Akka actors來處理Akka中的HTTP請求
- 4. 如何在Akka actors之間傳遞遠程引用?
- 5. 代表使用Erlang的消息傳遞
- 6. 如何跟蹤Akka消息傳遞
- 7. Cluster Akka/Scala actors
- 8. Stateless Akka actors
- 9. 我可以使用summernote html代碼傳遞給jQuery ajax調用
- 10. android消息傳遞的源代碼
- 11. 如何在RestEasy中將消息傳遞給錯誤代碼
- 12. 在python中傳遞消息
- 13. 如何使用Akka actors處理Java未來
- 14. firebase雲消息傳遞:setBackgroundMessageHandler未調用
- 15. 使用PyQt在python中使用QtNetwork進行TCP消息傳遞
- 16. 如何使用Django消息傳遞來提醒其他用戶?
- 17. 將回調從.NET傳遞給C代碼,有效的代碼或不是?
- 18. JMS使用JMS調用傳遞消息的API
- 19. 在使用Akka 2.X.X的actors類定義上使用@Transactional?
- 20. 單元測試AKKA actors
- 21. scala SBT的application.conf Akka Actors
- 22. Akka Tcp綁定的消息使用
- 23. 使用Akka處理SOAP消息
- 24. 使用Putty進行modbus消息傳遞
- 25. 使用哪種消息傳遞協議?
- 26. 使用FHIR的設備消息傳遞
- 27. 使用postMessage的跨域消息傳遞
- 28. 使用form_tag時傳遞錯誤消息?
- 29. 如何使用GET將加密消息傳遞給瀏覽器?
- 30. 將消息從C傳遞給erlang
請您在這裏給出一個詞http://stackoverflow.com/questions/28665037/concurrency-advanced-python-and-interaction-with-different-objects – user3378649