2015-11-25 60 views
5

This page是鼓勵我嘗試火花CSV在Pyspark 讀取.csv文件,我發現一對夫婦職位如this描述如何使用spark-csv如何加載罐子dependenices在IPython的筆記本

但我的無法通過在啓動時包含.jar文件或包擴展名來初始化ipython實例,這可以通過spark-shell來完成。我試過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 

這會在每次啓動驅動器的時間火花CSV庫加載到PySpark。

顯然爲零的回答是更靈活,因爲你可以在導入PySpark包之前,這些行添加到您的PySpark應用:

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

from pyspark import SparkContext, SparkConf 

這樣,你只導入實際需要爲你的腳本程序包。

+0

如果您正在運行筆記本,這是迄今爲止最便攜的選擇:我運行的是全部火花筆記本的版本,一次解鎖所有三種語言的CSV解析。 – mrArias