首页 > 解决方案 > 使用 databricks Resr API 运行 spark 作业

问题描述

我正在使用 databricks rest API 来运行 spark 作业。我正在使用愚蠢的命令:

curl -X POST -H "Authorization: XXXX" 'url/api/2.0/jobs/create' -d ' {"name":"jobname","existing_cluster_id":"0725-095337-jello70","libraries": [{"jar": "dbfs:/mnt/pathjar/name-9edeec0f.jar"}],"email_notifications":{},"timeout_seconds":0,"spark_jar_task": {"main_class_name": "com.company.DngApp"}}'

curl -X POST -H "Authorization: XXXX" 'url/api/2.0/jobs/run-now' -d '{"job_id":25854,"jar_params":["--param","value"]}'

这里的参数是一个输入参数,但我想找到一种方法来覆盖火花驱动程序属性,通常我会这样做:

--driver-java-options='-Dparam=value'

但我正在寻找数据块休息 API 端的等价物

标签: restdatabricksspark-submit

解决方案


您不能在 Jar 参数中使用“--driver-java-options”。

原因:

注意: Jar_params 是带有 JAR 任务的作业的参数列表,例如 "jar_params": ["john doe", "35"]。

这些参数将用于调用 Spark JAR 任务中指定的主类的主函数。如果在运行时未指定,则默认为空列表。jar_params 不能与 notebook_params 一起指定。此字段的 JSON 表示(即 {"jar_params":["john doe","35"]})不能超过 10,000 字节。

在此处输入图像描述

有关更多详细信息,请参阅Azure Databricks - 作业 API - 立即运行

您可以spark_conf用来传入一串用户指定的 spark 配置键值对。

包含一组可选的、用户指定的 Spark 配置键值对的对象。您还可以分别通过 spark.driver.extraJavaOptions 和 spark.executor.extraJavaOptions 将一串额外的 JVM 选项传递给驱动程序和执行程序。

例子 Spark confs: {"spark.speculation": true, "spark.streaming.ui.retainedBatches": 5} or {"spark.driver.extraJavaOptions": "-verbose:gc -XX:+PrintGCDetails"}

更多详细信息,请参阅“ NewCluster 配置”。

希望这可以帮助。


推荐阅读