9

私はいくつかの Spark アプリケーションを開発するために Python コードを書いています。Python が実行中の JVM とどのようにやり取りするのか、非常に興味があり、Spark のソース コードを読み始めました。

最終的に、すべての Spark 変換/アクションが、次の方法で特定の jvm メソッドを呼び出していることがわかります。

self._jvm.java.util.ArrayList(),
self._jvm.PythonAccumulatorParam(host, port))
self._jvm.org.apache.spark.util.Utils.getLocalDir(self._jsc.sc().conf())
self._jvm.org.apache.spark.util.Utils.createTempDir(local_dir, "pyspark") \
            .getAbsolutePath()
...

_jvmPython プログラマーとして、このオブジェクトで何が起こっているのか非常に興味があります。ただし、 pysparkの下のすべてのソース コードを簡単に読んだところ、 Context_jvmクラスの属性であることがわかりました。それ以上は、属性やメソッドについては何も知りません。_jvm's

pyspark が JVM 操作にどのように変換されるかを理解してくれる人はいますか? scala コードを読んで、_jvmそこに が定義されているかどうかを確認する必要がありますか?

4

1 に答える 1