Spark-Submitオプションの使用

業界標準のspark-submit互換オプションを使用して、データ・フローのサードパーティ依存関係を使用してアプリケーションを実行します。

PySparkでは、Pythonファイル(.py)、圧縮されたPythonパッケージ(.zip)およびEggファイル(.egg)を次のいずれかの方法でエグゼキュータにアップロードできます:

  • 構成spark.submit.pyFilesの設定。
  • Sparkスクリプトでの--py-filesオプションの設定。

各オプションにSpark-Submit互換オプションを使用できます。

ただし、これらのアプローチでは、Wheelsとしてビルドされたパッケージを追加できないため、ネイティブ・コードとの依存関係を含めることはできません。Spark 3.2.1以降を使用している場合は、まずCondaパックを作成し、spark.archivesの構成を追加するか、Spark-Submit互換オプションとして--archivesを指定して、そのCondaパックをデータ・フローに渡します。

https://conda.github.io/conda-pack/spark.htmlおよびhttps://docs.conda.io/projects/conda-build/en/stable/user-guide/wheel-files.htmlの手順に従って、Spark 3.2.1依存関係のCondaパックを作成できます。

Spark 3.2.1以降では、spark.archivesまたは--archivesを使用してconda-packを提供すると、spark-submitコマンドが次のようになると、デフォルトで/opt/spark/work-dirディレクトリの下にアンパックされます:

spark-submit --archives pyspark_conda_env.tar.gz app.py
spark-submitコマンドが次のような場合:
spark-submit --archives pyspark_conda_env.tar.gz#your_environment app.py

その後、/opt/spark/work-dir/<your_environment>ディレクトリの下に解凍されます。

spark-submitアプローチの例は、データ・フローでのSpark-Submit機能を参照してください。