python - 为 Spark 集群上的 jupyter notebook 指定 python 文件

标签 python apache-spark pyspark jupyter-notebook

我正在 Spark 集群(使用 yarn )上运行 jupyter-notebook。我正在使用“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 作业完美地分布在 worker 上。但是,当我想使用我编写的 python 包时,worker 上的文件丢失了

当我不使用 Jupyter-notebook 而使用 spark-submit --master yarn --py-files myPackageSrcFiles.zip 时,我的 Spark 工作正常,例如以下代码正确运行:

主.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 包,但出现错误...

最佳答案

I tried specifying the .zip package in the SparkContext with the pyfiles keyword but I got an error

驼峰式:

sc = pyspark.SparkContext(appName='myApp', pyFiles=["myPackageSrcFiles.zip"])

或者你可以addPyFile

sc.addPyFile("myPackageSrcFiles.zip")

关于python - 为 Spark 集群上的 jupyter notebook 指定 python 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47719089/

相关文章:

python - 手动将 RGB 转换为灰度

python django 电子邮件设置正确的发件人 gunicorn

azure - Pyspark - 基于数据帧创建包含所有组合的 json 结构

python - PySpark 中的 Groupby 和 UDF/UDAF,同时保持 DataFrame 结构

python - 我正在学习 Python,需要朝着正确的方向努力

python - 值错误: invalid literal for int() with base 10: 's'

hadoop - apache spark - 检查文件是否存在

performance - spark中熵的高效计算

scala - 无法在Spark 1.4.1b群集上启动spark-shell

pyspark:两个日期列之间的小时差异