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 --archives pyspark_conda_env.tar.gz#your_environment app.py
その後、/opt/spark/work-dir/<your_environment>
ディレクトリの下に解凍されます。
spark-submitアプローチの例は、データ・フローでのSpark-Submit機能を参照してください。