This page鼓励我尝试使用spark-csv在PySpark中读取.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
但不支持。
请告知。
答案 0 :(得分:14)
您只需将其传递给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)
)
答案 1 :(得分:10)
我相信你也可以将它作为变量添加到你的spark-defaults.conf文件中。如下所示:
spark.jars.packages com.databricks:spark-csv_2.10:1.3.0
每次启动驱动程序时,都会将spark-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
这样您只需导入脚本实际需要的包。