aws-glue - 如何使用 AWS java SDK 使用 AWS 胶水作业自动生成脚本

标签 aws-glue aws-java-sdk aws-java-sdk-2.x

我正在使用 Java Sdk 创建粘合作业。它只有两个必需的参数 Command 和 Glue 版本。
但我需要使用自动脚本生成来创建工作。正如我们可以从控制台做的那样,我们添加数据源、AWS Glue 生成的建议脚本、转换类型、数据目标、架构等。如何使用 java sdk 或什至使用 aws 胶水 api 将这些参数添加到胶水作业。

           CreateJobRequest req = new CreateJobRequest();
            req.setName("TestJob2");
            req.setRole("GlueS3Role");
            req.setGlueVersion("1.0");
            JobCommand command = new JobCommand();
            command.setName("glueetl");
            command.setPythonVersion("3");
            **// S3 location need not to be given, as script code is auto generated by AWS glue
           command.setScriptLocation(S3ScriptLocation);**
            req.setCommand(command);

            AWSGlue glueClient = AWSGlueClientBuilder.standard()
                                 .withRegion(Regions.US_EAST_1)
                                 .withCredentials(new AWSStaticCredentialsProvider(creds))
                                 .build();

            glueClient.createJob(req);
        }

最佳答案

我希望 AWS Glue 客户端和触发作业的逻辑的实现将有助于以同样的方式实现胶水作业的自动生成。

胶水客户端:

public GlueClient createClient() {
        return GlueClient.builder()
                .region(Region.of(regionName))
                .credentialsProvider(ProfileCredentialsProvider.create(profileName)).build();

胶水工作流道:
public static String runGlueJob(GlueClient glueClient, String jobName, Map<String, String> glueArguments) {

        StartJobRunResponse response = glueClient.startJobRun(StartJobRunRequest.builder().jobName(jobName).arguments(glueArguments).build());
        String jobId = response.jobRunId();
        logger.info("JobId: " + jobId);

        return jobId;

    }


要创建新的 AWS Glue 作业定义,我们可以执行以下操作:
CreateJobResult jobResult = glueClient.createJob(CreateJobRequest.builder()
                .command(JobCommand.builder().pythonVersion("").scriptLocation("").name("").build())
                .defaultArguments()
                .description()
                .glueVersion()
                .logUri()
                .name()
                .numberOfWorkers()
                .role()
                .tags()
                .build());            


然后触发作业

https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/glue/AWSGlueClient.html

关于aws-glue - 如何使用 AWS java SDK 使用 AWS 胶水作业自动生成脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60167572/

相关文章:

amazon-web-services - 使用 Cloudformation 脚本创建 GlueSecurityConfiguration 时出错

amazon-web-services - 从 AWS Redshift 到 S3 的 AWS Glue ETL 作业失败

amazon-web-services - AWS Glue - 是否使用爬网程序

spring-cloud-stream - 无法从链中的任何提供商加载 AWS 凭证 Spring Cloud Stream Kinesis binder

amazon-s3 - 使用 AWS SDK V2 删除对象?

scala - 如何结束或失败 AWS Glue 作业并出现错误?

java - 返回在 REST Controller 中包装 S3Object.getObjectContent() 的 ResponseEntity<InputStreamResource> 是否安全?

amazon-web-services - 如何使用Java SDK获取AWS Quicksight仪表板的嵌入URL

java - 从 AWS Java SDK 2.0 中的 GetObjectResponse 获取 S3Object

Java : How to print the content of s3 bucket