【发布时间】:2018-05-22 23:29:22
【问题描述】:
我在 Spark 集群上运行 jupyter-notebook(使用 yarn)。我正在使用“findspark”包来设置笔记本,它工作得非常好(我通过 SSH 隧道连接到集群主机)。 当我写一个“独立”的笔记本时,它工作得很好,例如以下代码运行没有问题:
import findspark
findspark.init()
import pyspark
sc = pyspark.SparkContext(appName='myApp')
a = sc.range(1000,numSlices=10)
a.take(10)
sc.stop()
Spark 作业完全分布在工作人员身上。但是,当我想使用自己编写的 python 包时,worker 上的文件丢失了。
当我不使用 Jupyter-notebook 并且使用 spark-submit --master yarn --py-files myPackageSrcFiles.zip 时,我的 Spark 作业运行良好,例如以下代码运行正确:
main.py
import pyspark
from myPackage import myFunc
sc = pyspark.SparkContext(appName='myApp')
a = sc.range(1000,numSlices=10)
b = a.map(lambda x: myFunc(x))
b.take(10)
sc.stop()
然后
spark-submit --master yarn --py-files myPackageSrcFiles.zip main.py
问题是:如何从 jupyter notebook 运行 main.py?我尝试使用 pyfiles 关键字在 SparkContext 中指定 .zip 包,但出现错误...
【问题讨论】:
标签: python apache-spark pyspark jupyter-notebook