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

PySpark Glue作业写入Spark DataFrame到DDB遇数据源错误,需外部Jar吗?

解决PySpark Glue作业写入DynamoDB的"Failed to find data source"错误

是的,必须依赖AWS官方提供的Spark-DynamoDB连接器Jar包,Spark本身未内置该数据源支持。结合AWS Glue版本,具体处理方式如下:

1. AWS Glue 2.0及以上版本

Glue 2.0+已内置DynamoDB连接器,无需手动上传Jar,但需注意两个关键点:

  • 在Glue作业配置的Job parameters中添加参数:--datalake-formats dynamodb
  • 修正代码中的参数名与格式写法:
    redshift_df.write.format("dynamodb")\
        .option("tableName", "accounts_payable_payee_info")\
        .option("region", "你的AWS区域(如us-east-1)")\
        .save()
    
    注意:参数需用tableName而非你之前写的table,字段名大小写需与DynamoDB表完全匹配。

2. AWS Glue 1.0版本

需手动部署连接器Jar:

  • 下载与你的Spark版本匹配的spark-dynamodb-connector官方Jar包
  • 将Jar上传至AWS S3存储桶
  • 在Glue作业配置的Jar path中指定该Jar的S3路径
  • 代码写法调整为:
    redshift_df.write.format("io.aws.dynamodb")\
        .option("tableName", "accounts_payable_payee_info")\
        .option("region", "你的AWS区域")\
        .save()
    

额外注意事项

  • 确保Glue作业的IAM角色拥有dynamodb:BatchWriteItem、dynamodb:PutItem等写入DynamoDB的权限
  • 若DynamoDB表启用了加密,需确保IAM角色拥有对应的KMS密钥访问权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 13:48:13