2017-10-19 8 views
1

Scalaで定義されたメソッドを実行時にPythonのメソッドに変換できるかどうかは疑問です。私は私のプロジェクトの一環としてApache Spark Scala APIを学び、ScalaメソッドをPython言語で認識可能な形式に変換する方法を探しています。 私の目標はScalaプログラムから外部Pythonプログラムにメソッドを送信することです。Pythonプログラムはそのメソッドを使用または実行できるはずです。ScalaメソッドをPythonメソッドに変換することは可能ですか

Scalaのコード=>ラムダ

line => line.split(" ") 

は、Pythonが理解できるコードにこれを変換する方法はあります。

上記の例は非常に基本的で素朴です。しかし、(Pythonにも機能的なサポートがある一般的なものを考慮して)可能な方法はありますか?それを実現する方法はありますか?同じことを達成するためにシリアル化を使用できますか? PythonはScalaの直列化オブジェクトを理解するでしょうか?

+0

Scalaスクリプトは、Pythonのサブプロセス内で実行できます。それ以外に、PythonからScalaコードを実行する方法はありません。 – puhlen

答えて

0

はい、parspark内でScala関数を使用できます。

まず、コードを含むScalaでHive UDFを作成します。 jarファイルにパックし、スパーク実行中にjarを--jarsに追加します。その後、あなたのUDFを登録すると、それを使用することができます。詳細は、この偉大なblogpostをご覧ください:https://dzone.com/articles/working-with-udfs-in-apache-spark

+0

ありがとうございます。しかし、私は瓶の作成を探していません。実行時にscalaプログラムを実行している別のPythonプログラムにscalaメソッドを渡したいと思います。 scalaのメソッドは、ユーザ定義のメソッド(Pythonで実装可能であると仮定)です。可能ですか? – aagora

+0

いいえ。別々のプロセスが2つある場合は、RESTのようなRPC(リモートプロシージャコール)を介してScala関数を公開することを検討する必要があります。 – Mariusz

関連する問題