Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.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
提交包含多个python文件和一个配置文件的pyspark作业_Python_Apache Spark_Pyspark_Spark Submit - Fatal编程技术网

提交包含多个python文件和一个配置文件的pyspark作业

提交包含多个python文件和一个配置文件的pyspark作业,python,apache-spark,pyspark,spark-submit,Python,Apache Spark,Pyspark,Spark Submit,我有4个python脚本和一个.txt配置文件。在4个python文件中,有一个文件具有spark应用程序的入口点,还可以从其他python文件导入函数。但配置文件是在其他一些python文件中导入的,这些文件不是spark应用程序的入口点。 我想在pyspark中编写spark submit命令,但当配置文件不是python文件而是文本文件或ini文件时,我不确定如何使用spark submit命令随配置文件提供多个文件 用于演示: 4个python文件: file1.py、file2.py、

我有4个python脚本和一个.txt配置文件。在4个python文件中,有一个文件具有spark应用程序的入口点,还可以从其他python文件导入函数。但配置文件是在其他一些python文件中导入的,这些文件不是spark应用程序的入口点。 我想在pyspark中编写spark submit命令,但当配置文件不是python文件而是文本文件或ini文件时,我不确定如何使用spark submit命令随配置文件提供多个文件

用于演示: 4个python文件: file1.py、file2.py、file3.py。file4.py

1配置文件: conf.txt

file1.py:该文件具有spark会话和对所有其他python文件的调用。 file3.py:此python文件正在读取conf.txt

我想用spark submit提供所有这些文件,但不确定该命令。 我确定的一个解决方案是:

spark-submit --master local  --driver-memory 2g --executor-memory  2g --py-files s3_path\file2.py,s3_path\file3.py,s3_path\file4.py  s3_path\file1.py
但是使用上面的spark submit,我不确定如何传递conf.txt。

您可以使用
--files
来提供要随应用程序一起上载的文件列表


比如说,

spark-submit file1.py \
    --master local \
    --driver-memory 2g \
    --executor-memory 2g \
    --py-files file2.py,file3.py,file4.py \
    --files conf.txt

如果文件位于S3实例中,可以尝试以下操作:

spark-submit s3://path/to/file1.py \
    --master local \
    --driver-memory 2g \
    --executor-memory 2g \
    --py-files s3://path/to/file2.py,s3://path/to/file3.py,s3://path/to/file4.py \
    --files s3://path/to/conf.txt

我正在aws emr上运行spark submit:spark submit--master local f'{s3_path}/file1.py','--py files',f'{s3_path}/file2.py',f'{s3_path}/file3.py',f'{s3_path}/file4.py','--files',f'{s3_path}/config.txt'但该命令不起作用,并且在文件2中找不到给定错误模块,因为我已在文件1中导入了文件2。@Jay我已更新了答案。让我知道它是否对您的“Args”起到了作用:['spark-submit'、'-deploy mode'、'cluster'、'-master'、'thread'、'-executor memory'、conf['emr\u step\u executor\u memory'、'-executor cores'、'-conf'、'spark.thread.submit.waitAppCompletion=true'、'-conf'、'spark.rpc.message.maxSize=1024'、f'{\s3\u path}/file1.py'、f'{s3_-path}/file2.py',f'{s3_-path}/file3.py',f'{s3_-path}/file4.py','--files',f'{s3_-path}/config.txt']:我正在运行上述命令,但该命令不起作用,并且找不到问题模块。