私のPySparkクラスパスにjarを自動的に含めようとしています。今、私は次のコマンドを入力することができ、それは機能します:
$ pyspark --jars /path/to/my.jar
そのjarをデフォルトで含めて、pyspark
と入力してIPython Notebookでも使用できるようにしたいと考えています。
EnvでPYSPARK_SUBMIT_ARGSを設定することで引数を含めることができることを読みました:
export PYSPARK_SUBMIT_ARGS="--jars /path/to/my.jar"
残念ながら、上記は機能しません。ランタイムエラーが発生しますFailed to load class for data source
。
実行中Spark 1.3.1。
編集
IPython Notebookを使用するときの私の回避策は次のとおりです。
$ IPYTHON_OPTS="notebook" pyspark --jars /path/to/my.jar
spark-defaults.confファイルにjarファイルを追加できます(sparkインストール)jarリストに複数のエントリがある場合は、:を区切り文字として使用します。
spark.driver.extraClassPath /path/to/my.jar
このプロパティは https://spark.Apache.org/docs/1.3.1/configuration.html#runtime-environment に記載されています
私の知る限り、jarを両方のドライバーにインポートする必要があります[〜#〜] and [〜#〜] executor。そのため、以下の両方の行を追加してconf/spark-defaults.conf
を編集する必要があります。
spark.driver.extraClassPath /path/to/my.jar
spark.executor.extraClassPath /path/to/my.jar
これを行ったとき、他のパラメータは必要ありませんでした。あなたもそれらを必要としないでしょう。
Spark 2.0+はspark.driver.extraLibraryPath
およびspark.executor.extraLibraryPath
https://spark.Apache.org/docs/2.4.3/configuration.html#runtime-environment
ps。 spark.driver.extraClassPath
およびspark.executor.extraClassPath
はまだ存在しますが、非推奨であり、Sparkの将来のリリースで削除されます。