通过 livy 在 HDFS 上传递 python 个模块
passing python modules on HDFS through livy
在HDFS的/user/usr1/路径下,我放置了两个脚本pySparkScript.py和relatedModule.py。 relatedModule.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.
在HDFS的/user/usr1/路径下,我放置了两个脚本pySparkScript.py和relatedModule.py。 relatedModule.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.