You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Scala开发的AWS Glue作业中获取工作流运行时属性

AWS Glue Scala 获取工作流运行属性实现

以下是与你提供的Python代码功能完全对等的Scala版本,可直接在AWS Glue托管环境中运行:

import com.amazonaws.services.glue.GlueContext
import com.amazonaws.services.glue.util.GlueArgParser
import org.apache.spark.SparkContext
import com.amazonaws.services.glue.AWSGlueClientBuilder

object WorkflowPropDemo {
  def main(args: Array[String]): Unit = {
    val sc = SparkContext.getOrCreate()
    val glueContext = GlueContext(sc)

    // 解析系统入参,等价Python的getResolvedOptions
    val glueArgs = GlueArgParser.getResolvedOptions(
      args,
      Array("JOB_NAME", "WORKFLOW_NAME", "WORKFLOW_RUN_ID")
    )

    // 初始化Glue服务客户端
    val glueClient = AWSGlueClientBuilder.defaultClient()

    val workflowName = glueArgs("WORKFLOW_NAME")
    val workflowRunId = glueArgs("WORKFLOW_RUN_ID")

    // 请求工作流运行属性
    val runPropertiesReq = new com.amazonaws.services.glue.model.GetWorkflowRunPropertiesRequest()
      .withName(workflowName)
      .withRunId(workflowRunId)
    val workflowParams = glueClient.getWorkflowRunProperties(runPropertiesReq).getRunProperties

    // 提取自定义属性
    val targetDatabase = workflowParams.get("target_database")
    val targetS3Location = workflowParams.get("target_s3_location")
  }
}

注意事项

  • AWS Glue托管环境已经预装了所有依赖的AWS SDK和Glue Scala库,无需额外打包依赖即可提交运行
  • 通过工作流触发作业时,WORKFLOW_NAME和WORKFLOW_RUN_ID会由Glue自动注入,无需手动在作业参数中配置
  • 代码中获取的workflowParams是java.util.Map类型,如需转为Scala原生Map操作,可引入scala.collection.JavaConverters._后调用workflowParams.asScala完成转换

内容的提问来源于stack exchange,提问作者Max08

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 01:15:03