我要启动Pypark计划:
$ export SPARK_HOME=
$ export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.9-src.zip
$ python
以及py代码:
from pyspark import SparkContext, SparkConf
SparkConf().setAppName("Example").setMaster("local[2]")
sc = SparkContext(conf=conf)
如何添加jar依赖项,比如databricks csv jar?使用命令行,我可以像这样添加包:
$ pyspark/spark-submit --packages com.databricks:spark-csv_2.10:1.3.0
但我没有用这些。这个程序是一个更大的工作流的一部分,不使用spark submit,我应该能够运行我的./foo.py程序,它应该可以正常工作。
我知道你可以为extraclasspath设置spark属性,但是你必须将jar文件复制到每个节点?
尝试了conf.set(“spark.jars”,“jar1,jar2”),但在py4jcnf异常下无法正常工作
5条答案
按热度按时间vuv7lop31#
任何依赖项都可以通过
spark.jars.packages
(设置spark.jars
应工作以及)财产在$SPARK_HOME/conf/spark-defaults.conf
. 它应该是一个逗号分隔的坐标列表。包或类路径属性必须在jvm启动之前设置,这在
SparkConf
初始化。意思是SparkConf.set
方法不能在此处使用。另一种方法是
PYSPARK_SUBMIT_ARGS
前环境变量SparkConf
对象已初始化:wr98u20j2#
它来了。。。。
然后。。。
hyrbngr73#
我在一个不同的地方遇到了类似的问题
jar
(“用于spark的mongodb连接器”,mongo-spark-connector
),但最大的警告是我安装了Spark
通过pyspark
在conda
(conda install pyspark
). 因此,所有的援助Spark
-具体的答案并没有什么帮助。对于那些安装了conda
,以下是我拼凑的过程:1) 找到你的
pyspark/jars
位于。我的是这样的:~/anaconda2/pkgs/pyspark-2.3.0-py27_0/lib/python2.7/site-packages/pyspark/jars
.2) 下载
jar
从该位置将文件导入步骤1中找到的路径。3) 现在,您应该能够运行这样的程序(代码取自mongodb官方教程,使用上面briford wylie的答案):
免责声明:
1) 我不知道这个答案是否合适;请告诉我一个更好的地方,我会搬走的。
2) 如果你认为我有错误或有改进的过程中,请评论,我会修改。
nzk0hqpo4#
经过多次尝试,终于找到了答案。答案具体到使用spark-csv-jar。在硬盘上创建一个文件夹,比如d:\spark\spark\u jars。将以下jar放在那里:
spark-csv_2.10-1.4.0.jar(这是我正在使用的版本)
commons-csv-1.1.jar
univocity-parsers-1.5.1.jar
2和3是spark csv所需的依赖项,因此这两个文件也需要下载。转到您下载spark的conf目录。在spark-defaults.conf文件中添加以下行:
spark.driver.extraclasspath d:/spark/spark\u jars/*
星号应该包括所有的jar。现在像往常一样运行python,创建sparkcontext和sqlcontext。现在您应该可以使用spark csv作为
hi3rlvi25#
这里有很多方法(设置env vars,添加到$spark\u home/conf/spark-defaults.conf等等),一些答案已经涵盖了这些。我想为那些专门使用jupyter笔记本和在笔记本中创建spark会话的人添加一个额外的答案。以下是最适合我的解决方案(在我的例子中,我希望加载Kafka包):
使用这行代码,我不需要做任何其他事情(没有envs或conf文件更改)。
2019-10-30更新:上面的代码行仍然工作得很好,但我想为看到这个答案的新人注意几件事:
最后您需要更改版本以匹配spark版本,因此对于spark 2.4.4,您需要:
org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.4
这个jar的最新版本spark-sql-kafka-0-10_2.12
对于我(mac笔记本电脑)来说是崩溃的,所以如果你在调用'readstream'时遇到崩溃,请恢复到2.11。