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

Kar*_*ikS 7 csv apache-spark pyspark jupyter-notebook

这个页面鼓励我尝试使用spark-csv在PySpark中读取.csv文件我发现了一些帖子,比如这个描述如何使用spark-csv

但我无法通过在启动时包含.jar文件或包扩展来初始化ipython实例,这可以通过spark-shell完成.

也就是说,而不是

ipython notebook --profile=pyspark
Run Code Online (Sandbox Code Playgroud)

我试过了

ipython notebook --profile=pyspark --packages com.databricks:spark-csv_2.10:1.0.3
Run Code Online (Sandbox Code Playgroud)

但它不受支持.

请指教.

zer*_*323 15

您可以简单地将其传递给PYSPARK_SUBMIT_ARGS变量.例如:

export PACKAGES="com.databricks:spark-csv_2.11:1.3.0"
export PYSPARK_SUBMIT_ARGS="--packages ${PACKAGES} pyspark-shell"
Run Code Online (Sandbox Code Playgroud)

SparkContext/ SparkSession和相应的JVM启动之前,还可以在代码中动态设置这些属性:

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

os.environ["PYSPARK_SUBMIT_ARGS"] = (
    "--packages {0} pyspark-shell".format(packages)
)
Run Code Online (Sandbox Code Playgroud)


Dis*_*ver 10

我相信你也可以将它作为变量添加到你的spark-defaults.conf文件中.所以类似于:

spark.jars.packages    com.databricks:spark-csv_2.10:1.3.0
Run Code Online (Sandbox Code Playgroud)

每次启动驱动程序时,这都会将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
Run Code Online (Sandbox Code Playgroud)

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

  • 如果您正在运行笔记本,这是迄今为止最便携的选项:我正在运行全 Spark 笔记本版本,这可以同时解锁所有三种语言的 CSV 解析。 (2认同)