使用命令行数据块提交具有不同参数的作业
Submitting jobs with different parameters using command line databricks
我有 jar 和相关的属性文件。为了 运行 罐子,这是我在 Azure 上的 Databricks 上所做的:
我点击:
+Create Job
Task: com.xxx.sparkmex.core.ModelExecution in my.jar - Edit / Upload JAR / Remove
Parameters: Edit
Main Class: com.xxx.sparkmex.core.ModelExecution
Arguments: ["-file","/dbfs/mnt/mypath/myPropertyFile.properties","-distributed"]
Cluster: MyCluster
然后我点击RunNow
我正在尝试使用 databricks cli 实现相同的目标
这就是我doing/want要做的事情:
1) 上传属性文件
dbfs cp myPropertyFile.properties dbfs:/mnt/mypath/myPropertyFile.properties
2) 创建一个作业:databricks jobs create
当我这样做时,它要求一个 --jason-file。我从哪里得到 jason 文件?
3)上传jar文件:如何上传jar文件?
4) 上传属性 文件:如何上传属性文件?
5) 重启集群:databricks clusters restart --cluster-id MYCLUSTERID
6) 运行 工作
并重复。我想重复的原因是每次我上传一个具有不同设置的新属性文件时。
我不知道如何进行第 2 步到第 4 步和第 5 步。
对于第二步,您需要自己创建 JSON 文件。将此视为您的集群配置。 Here's an example 使用 JAR 文件创建作业:
{
"name": "SparkPi JAR job",
"new_cluster": {
"spark_version": "5.2.x-scala2.11",
"node_type_id": "r3.xlarge",
"aws_attributes": {"availability": "ON_DEMAND"},
"num_workers": 2
},
"libraries": [{"jar": "dbfs:/docs/sparkpi.jar"}],
"spark_jar_task": {
"main_class_name":"org.apache.spark.examples.SparkPi",
"parameters": "10"
}
}
将其另存为 JSON 文件并将其包含在您的 API 请求中。您还可以直接在 curl
命令中包含 JSON。有关示例,请参见上面的 link。您可能希望将 myPropertyFile.properties
作为值传递给 JSON.
中的 "parameters"
键
您可以按照执行步骤 1 - the DBFS command group Databricks CLI 的相同方式上传 JAR 和属性文件。
databricks fs cp /path_to_local_file/myJar.jar dbfs:/path_to_file_on_dbfs/
创建作业并获得作业 ID 后,您可以使用 run-now
API 启动它。
如果您想自动执行此过程并使其可重复,您可以编写一个 bash 脚本,该脚本接受参数并调用 CLI。或者,您可以使用 wrappers for the CLI in Python 或编写 Python 脚本来自己管理 REST API 调用。
我有 jar 和相关的属性文件。为了 运行 罐子,这是我在 Azure 上的 Databricks 上所做的:
我点击:
+Create Job
Task: com.xxx.sparkmex.core.ModelExecution in my.jar - Edit / Upload JAR / Remove
Parameters: Edit
Main Class: com.xxx.sparkmex.core.ModelExecution
Arguments: ["-file","/dbfs/mnt/mypath/myPropertyFile.properties","-distributed"]
Cluster: MyCluster
然后我点击RunNow
我正在尝试使用 databricks cli 实现相同的目标
这就是我doing/want要做的事情:
1) 上传属性文件
dbfs cp myPropertyFile.properties dbfs:/mnt/mypath/myPropertyFile.properties
2) 创建一个作业:databricks jobs create
当我这样做时,它要求一个 --jason-file。我从哪里得到 jason 文件?
3)上传jar文件:如何上传jar文件?
4) 上传属性 文件:如何上传属性文件?
5) 重启集群:databricks clusters restart --cluster-id MYCLUSTERID
6) 运行 工作
并重复。我想重复的原因是每次我上传一个具有不同设置的新属性文件时。 我不知道如何进行第 2 步到第 4 步和第 5 步。
对于第二步,您需要自己创建 JSON 文件。将此视为您的集群配置。 Here's an example 使用 JAR 文件创建作业:
{
"name": "SparkPi JAR job",
"new_cluster": {
"spark_version": "5.2.x-scala2.11",
"node_type_id": "r3.xlarge",
"aws_attributes": {"availability": "ON_DEMAND"},
"num_workers": 2
},
"libraries": [{"jar": "dbfs:/docs/sparkpi.jar"}],
"spark_jar_task": {
"main_class_name":"org.apache.spark.examples.SparkPi",
"parameters": "10"
}
}
将其另存为 JSON 文件并将其包含在您的 API 请求中。您还可以直接在 curl
命令中包含 JSON。有关示例,请参见上面的 link。您可能希望将 myPropertyFile.properties
作为值传递给 JSON.
"parameters"
键
您可以按照执行步骤 1 - the DBFS command group Databricks CLI 的相同方式上传 JAR 和属性文件。
databricks fs cp /path_to_local_file/myJar.jar dbfs:/path_to_file_on_dbfs/
创建作业并获得作业 ID 后,您可以使用 run-now
API 启动它。
如果您想自动执行此过程并使其可重复,您可以编写一个 bash 脚本,该脚本接受参数并调用 CLI。或者,您可以使用 wrappers for the CLI in Python 或编写 Python 脚本来自己管理 REST API 调用。