Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从.egg而不是.py运行PySpark作业_Pyspark_Google Cloud Platform_Google Cloud Dataproc - Fatal编程技术网

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

从.egg而不是.py运行PySpark作业,pyspark,google-cloud-platform,google-cloud-dataproc,Pyspark,Google Cloud Platform,Google Cloud Dataproc,我正在尝试使用运行Pypark作业。与所有示例相比,唯一不同的是,我想从.egg而不是.py文件提交作业 为了在常规商品集群中提交PySpark作业,需要执行以下操作: spark2-submit --master yarn \ --driver-memory 20g \ --deploy-mode client \ --conf parquet.compression=SNAPPY \ --jars spark-avro_2.11-3.2.0.jar \

我正在尝试使用运行Pypark作业。与所有示例相比,唯一不同的是,我想从.egg而不是.py文件提交作业

为了在常规商品集群中提交PySpark作业,需要执行以下操作:

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。 为了实现这一点,我使用以下命令:

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加载主类 文件:/dummyproject-1_spark-py2.7.egg

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


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

看起来好像有一个bug,关于
gcloud dataproc
如何解析参数并使Spark尝试像Java JAR文件一样执行您的文件。一种解决方法是将
\uuuu main\uuuu.py
文件复制到egg文件之外,并像这样独立执行它

gcloud dataproc jobs submit pyspark \
    --cluster=my-cluster-001 \
    --py-files=file:///dummyproject-1_spark-py2.7.egg \
    file:///__main__.py \

是否可以只使用.egg文件进行spark提交?没有.py文件?