通过 livy 在 HDFS 上传递 python 个模块

passing python modules on HDFS through livy

在HDFS的/user/usr1/路径下,我放置了两个脚本pySparkScript.pyrelatedModule.pyrelatedModule.py 是一个 python 模块,它将被导入 pySparkScript.py

我可以 运行 脚本 spark-submit pySparkScript.py

但是,我需要通过 Livy 运行 这些脚本。通常,我 运行 单个脚本成功如下:

curl -H "Content-Type:application/json" -X POST -d '{"file": "/user/usr1/pySparkScript.py"}' livyNodeAddress/batches

但是,当我 运行 上面的代码时,它一到达 import relatedModule.py 就失败了。我意识到我也应该在 Livy 的参数中给出 relatedModule 的路径。我尝试了以下选项:

curl -H "Content-Type:application/json" -X POST -d '{"file": "/user/usr1/pySparkScript.py", "files": ["/user/usr1/relatedModule.py"]}' livyNodeAddress/batches

我应该如何将这两个文件传递给 Livy?

尝试使用pyFiles属性。 请参考Livy REST API docs.