Jupyter内のSpark_csvを使用し、Pythonを使用します
-
16-10-2019 - |
質問
私の究極の目標は、Sparkを使用したデータ分析のためにJupyterをPythonと一緒に使用することです。私が直面している現在のハードルは、外部をロードすることです spark_csv
図書館。 Mac OSとAnacondaをPython Distributionとして使用しています。
特に、次のとおりです。
from pyspark import SparkContext
sc = SparkContext('local', 'pyspark')
sqlContext = SQLContext(sc)
df = sqlContext.read.format('com.databricks.spark.csv').options(header='true').load('file.csv')
df.show()
Jupyterから発動したとき、
Py4JJavaError: An error occurred while calling o22.load.
: java.lang.ClassNotFoundException: Failed to find data source: com.databricks.spark.csv. Please find packages at http://spark-packages.org
詳細を次に示します。
Jupyterと一緒に火花を設定します
Jupyter/Ipython(Python 3.xを使用)にSpark/Pysparkをセットアップすることができました。
システムの初期設定
OS XIにAnacondaを使用してPythonをインストールしました。私が現在インストールしているPythonのデフォルトバージョンは3.4.4(Anaconda 2.4.0)です。また、Pythonを使用して2.xバージョンもインストールしていることに注意してください conda create -n python2 python=2.7
.
スパークのインストール
これは実際に最も簡単なステップです。最新のバイナリをダウンロードしてください ~/Applications
または選択した他のディレクトリ。次に、アーカイブに至る tar -xzf spark-X.Y.Z-bin-hadoopX.Y.tgz
。 Sparkに簡単にアクセスできるように、Sparkへの象徴的なリンクを作成します。
ln -s ~/Applications/spark-X.Y.Z-bin-hadoopX.Y ~/Applications/spark
最後に、スパークシンボリックリンクをパスに追加します。
export SPARK_HOME=~/Applications/spark
export PATH=$SPARK_HOME/bin:$PATH
Spark/Pysparkをローカルに実行できるようになりました:単に呼び出す spark-shell
また pyspark
.
Jupyterの設定
Jupyterノートブック内からSparkを使用するために、次のように準備してください PYTHONPATH
:
export PYTHONPATH=$SPARKHOME/python/lib/py4j-0.8.2.1-src.zip:$SPARKHOME/python/:$PYTHONPATH
詳細については、詳細をご覧ください ここ.
解決
構成の残りが正しいと仮定すると、あなたがしなければならないのは作ることだけです spark-csv
あなたのプログラムで利用可能なjar。これを達成する方法はいくつかあります:
必要な瓶を含む手動でダウンロードします
spark-csv
およびCSVパーサー(たとえばorg.apache.commons.commons-csv
)そしてそれらをどこかに置きますCLASSPATH
.使用
--packages
オプション(Sparkの構築に使用されているScalaバージョンを使用します。事前に構築されたバージョンは2.10を使用します):使用
PYSPARK_SUBMIT_ARGS
環境変数:export PACKAGES="com.databricks:spark-csv_2.11:1.3.0" export PYSPARK_SUBMIT_ARGS="--packages ${PACKAGES} pyspark-shell"
Gradle Stringを追加します
spark.jars.packages
のconf/spark-defaults.conf
:spark.jars.packages com.databricks:spark-csv_2.11:1.3.0
他のヒント
Macで次の手順を使用します -
- viから〜/.bash_profile(〜/.zshrcその電車に乗っている場合)
- 次のエントリを貼り付けます(Spark-CSVの目的のバージョンを必ず指定してください) -
export PYSPARK_SUBMIT_ARGS="--packages com.databricks:spark-csv_2.11:1.3.0 $PYSPARK_SUBMIT_ARGS"
そこから、「iPythonノートブック」を実行して、このようなものでテストします -
import pyspark as ps
from pyspark.sql import SQLContext
sc = ps.SparkContext()
input_csv = 'file:////PATH_TO_CSV_ON_LOCAL_FILESYSTEM'
df=sqlContext.read.load(input_csv,format='com.databricks.spark.csv', header='true', inferSchema='true')
df.dtypes # Returns the csv's schema breakdown with types