如何在IPython Notebook中加载jar依赖项

时间:2015-11-25 03:46:12

标签: csv apache-spark pyspark jupyter-notebook

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

但不支持。

请告知。

2 个答案:

答案 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

这样您只需导入脚本实际需要的包。