更新时间:2026-10-21 GMT+08:00
分享

通过API方式连接Spark端点并提交作业

在AI DataLake控制台上创建Spark端点后,即可向该端点提交Spark作业,利用端点的计算能力处理数据。目前支持通过API方式提交SQL作业、Python作业和JAR作业。

前提条件

  • 已获取工作空间ID 。

    登录AI DataLake管理控制台,在“工作空间管理”页面找到目标工作空间ID。

  • 已获取Spark端点名称(endpoint_name)。

    登录AI DataLake管理控制台,在“引擎端点”下的“批处理引擎Spark”页面找到目标Spark端点名称。

  • 已根据作业类型编写对应的作业文件,并将编写好的文件上传至OBS桶,记录其OBS路径。

注意事项

对接LakeFormation场景下,IAM账号名不能包含中划线(-),否则Spark作业提交将报错失败。

提交SparkSQL作业

使用Postman等工具,调用执行SparkSql作业 - RunSparkSqlAPI接口提交SparkSQL作业,代码示例如下。

POST /v2/workspaces/{workspace_id}/spark-sqls

{
  "endpoint_name": "spark-endpoint-01",
  "catalog_context": {
  "catalog_name": "hive_catalog",
  "database_name": "default"
  },
  "statement": "SELECT * FROM table_name LIMIT 100",
  "timeout": {
  "queued_timeout": 180,
  "running_timeout": 720
  }
}
表1 SparkSQL作业参数说明

参数

说明

示例

endpoint_name

端点名称

spark-endpoint-01

catalog_name

数据目录名称

hive_catalog

database_name

数据库名称

default

statement

SQL查询语句

SELECT * FROM table_name LIMIT 100

queued_timeout

排队超时

180

running_timeout

运行超时

720

提交Spark Jar作业

使用Postman等工具,调用启动Spark作业 - RunSparkJobAPI接口提交Spark Jar作业,代码示例如下。
POST /v2/workspaces/{workspace_id}/spark-jobs

{
  "name": "spark-jar-job-example",
  "endpoint_name": "spark-endpoint",
  "job_config": {
    "type": "spark_jar_job",
    "main_class": "com.example.SparkJobDriver",
    "main_jar": "obs://bucket/path/job.jar",
    "main_args": [
      "--input",
      "obs://bucket/input",
      "--output",
      "obs://bucket/output"
    ]
  },
  "image": {
    "image_id": "dd877a59-5cbd-44c5-b8a7-dc464cca****",
    "image_version_id": "01ae8ee6-af8a-48a8-895b-8d4a70bf****"
  },
  "resource_config": {
    "executor_number": 2,
    "driver_resource_spec": {
      "cpu": 2000,
      "memory": 4096
    },
    "executor_resource_spec": {
      "cpu": 2000,
      "memory": 4096
    }
  }
}
表2 Spark Jar作业参数说明

参数

说明

示例

name

作业名称

spark-jar-job-example

endpoint_name

端点名称

spark-endpoint

type

作业类型

spark_jar_job

main_class

主类名称,用于指定Spark Jar作业的入口类。

com.example.SparkJobDriver

main_jar

主Jar包路径

obs://bucket/path/job.jar

main_args

入口类参数

"--input",

"obs://bucket/input",

"--output",

"obs://bucket/output"

image_id

镜像ID,请通过调用查看自定义镜像列表接口查询获取。

dd877a59-5cbd-44c5-b8a7-dc464cca****

image_version_id

说明:

如果端点的资源使用模式为混合模式和按需弹性,且当前所选镜像版本已创建镜像快照,选择该版本镜像时会自动关联对应的镜像快照,端点启动时自动使用快照创建镜像资源,无需额外操作。创建镜像快照的具体操作,请参见镜像加速。

镜像版本。查看镜像版本的具体操作如下:

  1. 在AI DataLake管理控制台页面的左侧导航栏,选择“镜像管理”。
  2. 在“预置镜像”或“自定义镜像”页签下,单击镜像名称。
  3. 查看预置镜像或者自定义镜像的版本。
    • 查看预置镜像版本:单击“版本”页签,在“镜像版本”列,查看预置镜像的版本。
    • 查看自定义镜像版本:在“镜像版本”列,查看自定义镜像的版本。

      如果没有自定义镜像,请手动注册。具体操作,请参见注册自定义镜像。

20e48735-f273-413c-a0f5-4cd4544f****

executor_number

执行器数量

2

driver_resource_spec

Driver资源

2核4GB

executor_resource_spec

Executor资源

2核4GB

提交Spark Python作业

使用Postman等工具,调用启动Spark作业 - RunSparkJobAPI接口提交Spark Python作业,代码示例如下。

POST /v2/workspaces/{workspace_id}/spark-jobs

{
  "name": "python-job-example",
  "endpoint_name": "spark-endpoint",
  "job_config": {
    "type": "spark_python_job",
    "main_python_file": "obs://bucket/path/job.py",
    "main_args": [
      "--input-path",
      "obs://bucket/input"
    ]
  },
  "image": {
    "image_id": "dd877a59-5cbd-44c5-b8a7-dc464cca****",
    "image_version_id": "01ae8ee6-af8a-48a8-895b-8d4a70bf****"
  },
  "resource_config": {
    "executor_number": 2,
    "driver_resource_spec": {
      "cpu": 2000,
      "memory": 4096
    },
    "executor_resource_spec": {
      "cpu": 2000,
      "memory": 4096
    }
  }
}
表3 Spark Python参数说明

参数

说明

示例

name

作业名称

python-job-example

endpoint_name

端点名称

spark-endpoint

type

作业类型

spark_python_job

main_python_file

Python路径

obs://bucket/path/job.py

--input-path

入口参数

obs://bucket/input

image_id

镜像ID,请通过调用查看自定义镜像列表接口查询获取。

dd877a59-5cbd-44c5-b8a7-dc464cca****

image_version_id

说明:

如果端点的资源使用模式为混合模式和按需弹性,且当前所选镜像版本已创建镜像快照,选择该版本镜像时会自动关联对应的镜像快照,端点启动时自动使用快照创建镜像资源,无需额外操作。创建镜像快照的具体操作,请参见镜像加速。

镜像版本。查看镜像版本的具体操作如下:

  1. 在AI DataLake管理控制台页面的左侧导航栏,选择“镜像管理”。
  2. 在“预置镜像”或“自定义镜像”页签下,单击镜像名称。
  3. 查看预置镜像或者自定义镜像的版本。
    • 查看预置镜像版本:单击“版本”页签,在“镜像版本”列,查看预置镜像的版本。
    • 查看自定义镜像版本:在“镜像版本”列,查看自定义镜像的版本。

      如果没有自定义镜像,请手动注册。具体操作,请参见注册自定义镜像。

20e48735-f273-413c-a0f5-4cd4544f****

executor_number

执行器数量

2

driver_resource_spec

Driver资源

2核4GB

executor_resource_spec

Executor资源

2核4GB

相关文档