本文介绍如何获取SDK以及使用SDK提交Spark作业。

获取SDK

您可以在Maven Repository中获取数据湖分析最新的SDK包,获取地址Maven SDK地址
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-openanalytics-open</artifactId>
    <version>1.0.13</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId> 
    <version>4.4.6</version>
</dependency>

使用SDK提交Spark作业

  1. 获取用户的AccessKey,详情请参见获取AccessKey
  2. 获取当前地域的RegionId,阿里云各地域的RegionId请参见地域和可用区
  3. 确定执行任务的虚拟集群名称和JSON内容,您可以首先尝试在控制台提交作业,确定输入和返回的内容。
    使用SDK提交作业的代码如下所示:
    /**
     * 提交一个作业到数据湖分析Serverless Spark
     *
     * @param regionId           使用的数据湖分析的REGION_ID
     * @param accessKeyId        用户AccessKeyId
     * @param accessKeySecret    用户AccessKeySecret
     * @param virtualClusterName 数据湖分析虚拟集群名称
     * @param jobConfig          提交Spark作业的描述文件,需要是JSON格式
     * @return Spark JobId, 提交作业成功, 返回作业的ID, 用于后续的状态跟踪
     * @throws ClientException 提交作业可能因为网络原因等抛出错误
     */
    public String submitSparkJob(String regionId,
                                 String accessKeyId, 
                                 String accessKeySecret, 
                                 String virtualClusterName, 
                                 String jobConfig) throws ClientException {
        // 初始化阿里云平台开发Client
        DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
        IAcsClient client = new DefaultAcsClient(profile);
    
        // 初始化Request, 填入集群名称和作业内容
        SubmitSparkJobRequest request = new SubmitSparkJobRequest();
        request.setVcName(virtualClusterName);
        request.setConfigJson(jobConfig);
    
        // 提交作业, 返回Spark作业的JobId
        SubmitSparkJobResponse response = client.getAcsResponse(request);
        return response.getJobId();
    }  
    注意 JobConfig是一个合法的JSON格式的String,建议您手动在控制台执行一些小批量的作业,然后通过SDK来自动化提交核心业务。