文档首页/ 智能数据湖 AIDataLake/ API参考/ 应用示例/ SparkJob作业接口应用示例
更新时间:2026-07-13 GMT+08:00
分享

SparkJob作业接口应用示例

概述

本文指导用户通过调用API的方式,执行Spark作业的完整流程,包括启动Spark作业、查询作业状态和详情、查询spark作业列表等。

本流程假设终端租户已经在Console界面完成AI DataLake的服务授权,且已创建工作空间和Spark端点。API的调用方法请参见如何调用API

前提条件

  • workspace_id:工作空间ID,可在控制台的工作空间管理页面查看。
  • endpoint_name:Spark端点名称,可在控制台的端点管理页面查看,或参考查询所有端点列表 - ListV2AllEndpoints获取。

启动Spark作业

调用启动Spark作业接口,提交Spark作业,同时记录接口返回的“job_id”。

  • 请求示例

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

    {workspace_id}:工作空间ID,用于资源隔离。

  • Body:
    {
      "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" ]
      },
      "resource_config" : {
        "executor_number" : 2,
        "driver_resource_spec" : {
          "cpu" : 2000,
          "memory" : 4096
        },
        "executor_resource_spec" : {
          "cpu" : 2000,
          "memory" : 4096
        }
      }
    }
  • 响应示例:
    {
           "job_id": "1ee7d9db-90ec-xxxx-xxxx-0de936dade77"
    }

查询Spark作业的状态

调用查询Spark作业状态接口,查询作业状态,等待作业状态变为SUCCEED,表示作业执行完成。

  • 请求示例:

    GET /v2/workspaces/{workspace_id}/spark-jobs/{job_id}/state

    • {workspace_id}:工作空间ID,用于资源隔离。
    • {job_id}:启动Spark作业响应信息中的“job_id”参数值。
  • 响应示例:
    {  
           "job_id": "1ee7d9db-90ec-xxxx-xxxx-0de936dade77",
           "state": "SUCCEED"
    }

查询Spark作业详情

调用查看Spark作业详情接口,查看作业的完整配置信息和执行结果。

  • 请求示例:

    GET /v2/workspaces/{workspace_id}/spark-jobs/{job_id}

    • {workspace_id}:工作空间ID,用于资源隔离。
    • {job_id}:启动Spark作业响应信息中的“job_id”参数值。
  • 响应示例:
    {
      "job_id" : "1ee7d9db-90ec-xxxx-xxxx-0de936dade77",
      "client_token" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "name" : "spark-jar-job-example",
      "endpoint_name" : "spark-endpoint",
      "state" : "SUCCEED",
      "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" ]
      },
      "resource_config" : {
        "executor_number" : 2,
        "driver_resource_spec" : {
          "cpu" : 2000,
          "memory" : 4096
        },
        "executor_resource_spec" : {
          "cpu" : 2000,
          "memory" : 4096
        }
      },
      "create_time" : 1698776400000,
      "start_time" : 1698776450000,
      "end_time" : 1698776700000,
      "create_user" : {
        "user_id" : "user123",
        "user_name" : "admin"
      },
      "log_url" : "https://obs.example.com/logs/spark-job.log"
    }

取消Spark作业执行

若作业执行异常需要终止,调用取消Spark作业接口取消正在执行的作业。仅支持取消处于QUEUED或RUNNING状态的作业。

  • 请求示例:

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

    • {workspace_id}:工作空间ID,用于资源隔离。
    • {job_id}:启动Spark作业响应信息中的“job_id”参数值。
  • 响应示例:无响应体,HTTP状态码204表示取消成功。

相关文档