首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从.egg而不是.py运行.egg作业

从.egg而不是.py运行.egg作业
EN

Stack Overflow用户
提问于 2018-11-09 03:22:55
回答 1查看 970关注 0票数 2

我正在尝试使用PySpark运行一个Dataproc作业。与所有示例相比,唯一不同的是,我希望提交来自.egg的工作,而不是.py文件。

为了在常规商品集群中提交PySpark作业,如下所示:

代码语言:javascript
复制
spark2-submit --master yarn \
    --driver-memory 20g \
    --deploy-mode client \
    --conf parquet.compression=SNAPPY \
    --jars spark-avro_2.11-3.2.0.jar \
    --py-files dummyproject-1_spark-py2.7.egg \
    dummyproject-1_spark-py2.7.egg#__main__.py "param1" "param2"

现在,我想提交完全相同的作业,但使用Dataproc。为了实现这一点,我使用以下命令:

代码语言:javascript
复制
gcloud dataproc jobs submit pyspark \
    file:///dummyproject-1_spark-py2.7.egg#__main__.py \
    --cluster=my-cluster-001 \
    --py-files=file:///dummyproject-1_spark-py2.7.egg

我得到的错误是:

错误:无法从JAR文件中加载主类:/dumyProject-1_Spark-py2.7鸡蛋

值得一提的是,当我尝试使用PySpark文件运行一个简单的.py作业时,它是正确工作的。

有人能告诉我,如何从PySpark文件而不是.py文件运行.egg作业?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-09 14:53:20

看起来,在gcloud dataproc解析参数并使Spark试图像Java文件一样执行您的文件方面存在一个bug。解决方法是将__main__.py文件复制到鸡蛋文件之外,然后像这样独立执行它。

代码语言:javascript
复制
gcloud dataproc jobs submit pyspark \
    --cluster=my-cluster-001 \
    --py-files=file:///dummyproject-1_spark-py2.7.egg \
    file:///__main__.py \
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53219401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档