2015-11-25 10 views
5

This page IPythonノートブックにジャーdependenicesをロードするためにPyspark で.csvファイルを読み取るためのスパーク-CSVを試すために私を鼓舞して私はそのようなthisとしてポストのカップルがspark-csvがどのように

を使用する方法を説明した。しかし私は起動時に.jarファイルまたはパッケージ拡張子を含めてipythonインスタンスを初期化することはできません。これはspark-shellで行うことができます。

つまり、ipython notebook --profile=pysparkの代わりにipython notebook --profile=pyspark --packages com.databricks:spark-csv_2.10:1.0.3を試しましたが、サポートされていません。

お知らせください。

答えて

10

PYSPARK_SUBMIT_ARGS変数に渡すことができます。たとえば:

export PACKAGES="com.databricks:spark-csv_2.11:1.3.0" 
export PYSPARK_SUBMIT_ARGS="--packages ${PACKAGES} pyspark-shell" 

これらのプロパティもSparkContext/SparkSession前に、あなたのコード内で動的に設定し、JVMに対応することができますが開始されました:

packages = "com.databricks:spark-csv_2.11:1.3.0" 

os.environ["PYSPARK_SUBMIT_ARGS"] = (
    "--packages {0} pyspark-shell".format(packages) 
) 
+0

これは 'os.environ [" PYSPARK_SUBMIT_ARGS "]'に既にあるものすべてをオーバーライドしませんか?私はこれが言及される必要があると思うので、私は何が起こったのかを考え出すのに多くの時間を費やした。 –

7

私はまた、あなたの変数としてこれを追加することができると信じてspark-defaults.confファイル。したがって、次のようになります。

spark.jars.packages com.databricks:spark-csv_2.10:1.3.0 

ドライバを起動するたびにPySparkにspark-csvライブラリがロードされます。あなただけあなたが実際にあなたのスクリプトのために必要なパッケージをインポートしている

import os 
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.databricks:spark-csv_2.10:1.3.0 pyspark-shell' 

from pyspark import SparkContext, SparkConf 

この方法:あなたがPySparkパッケージをインポートする前に、あなたのPySparkアプリにこれらの行を追加することができますので、

明らかにゼロの答えは、より柔軟性があります。

+0

ノートブックを走らせているなら、これははるかに移植性の高い選択肢である。すべての3言語のCSV解析を一度に解除できます。 – mrArias