我已经创建了pyFiles.zip和sql.zip,并且具有以下目录结构。
pyFiles.zip
- module1
- module1.py
- main.py
sql.zip
- module1
- module1.sql
我的spark-submit命令如下:
spark-submit --master yarn-client --driver-memory 4g --py-files /home/valli/pyFiles.zip --archives /home/valli/sql.zip /home/valli/pyFiles.zip/main.py --sqls-path /home/valli/sql.zip
当我运行上面的命令时,我得到了错误提示。
can't find '__main__' module in '/home/valli/pyFiles.zip/main.py'
但是当我在如下所示的zip文件夹之外使用main.py时,我可以触发module1。
spark-submit --master yarn-client --driver-memory 4g --py-files /home/valli/pyFiles.zip --archives /home/valli/sql.zip /home/valli/main.py --sqls-path /home/valli/sql.zip
在上述情况下,module1.py将触发并且正在尝试读取SQL文件,但是我却发现SQL文件未找到异常,如下所示。
File not found: 'home/valli/sql.zip/module1/module1.sql'
任何人都可以在spark-submit命令中建议如何使用压缩的.py和.sql文件。
编辑:
当我运行第二个spark-submit命令时,zip文件存储在暂存目录下。我可以从sparkContext获取applicationID。但是我没有完整的登台目录URL。
请建议我如何获取暂存目录路径,以访问通过spark-submit命令中的--archive传递的压缩文件
谢谢。