我知道我们可以通过spark-jobserver提交一个jar ,但我们有很多用python编写的工作,我想知道如何通过rest api调用提交python工作或egg文件
答案 0 :(得分:0)
他们已经为python支持创建了文档
- 完整文档如何创建python作业 - spark-jobserver Python Support Reference
Spark Job Server通过特定于Python的上下文工厂
spark.jobserver.python.PythonSparkContextFactory
支持Python作业。
就像你注意到你需要打包python spark job。
为了能够将作业推送到作业服务器,必须将其打包到Python Egg文件中。
首先,您需要使用“Python工厂”创建HTTP POST / contexts / application-name上下文的上下文。
curl -X POST 'localhost:8090/contexts/py-context?context-factory=spark.jobserver.python.PythonSparkContextFactory'
curl --data-binary @dist/my_job_package-0.0.0-py2.7.egg \ -H 'Content-Type: application/python-archive' localhost:8090/binaries/my_py_job
如果完成此步骤,您可以使用spark-jobserver作业API检查作业是否已成功启动。
答案 1 :(得分:0)
您可以使用 Apache Livy(Apache Spark 的 REST 服务)
curl -X POST --data '{"kind": "pyspark"}' -H "Content-Type: application/json" localhost:8998/sessions
curl localhost:8998/sessions/0/statements -X POST -H 'Content-Type: application/json' -d'{"code":"sc.parallelize([1, 2, 3, 4, 5]).count()"}'