AWS Dynamodb 包问题 - EMR Serverless

问题描述 投票:0回答:1

我对 EMR 无服务器有疑问。 我想创建一个从 S3 读取数据的脚本,然后使用 EMR Serverless 将数据上传到 dynamodb 表。

作为普通 EMR,我想使用这个包 com.audienceproject:spark-dynamodb_2.12:1.1.1

但是当我设置 Spark 属性时

我在 EMR 中的步骤永远不会停止,当我手动停止时,不会出现错误,但似乎它永远不会到达包裹。我正在使用的角色在*资源中有dynamodb:*,我的代码spark部分是

spark = SparkSession.builder.appName("EMR_SERVERLESS")\
.config("spark.serializer", "org.apache.spark.serializer.KryoSerializer")\
.config("spark.executor.extraJavaOptions", "-XX:+UseG1GC -XX:InitiatingHeapOccupancyPercent=35")\
.config("spark.sql.parquet.datetimeRebaseModeInRead", "CORRECTED").config("spark.sql.avro.datetimeRebaseModeInWrite", "CORRECTED")\
.config("spark.jars.packages", "com.audienceproject:spark-dynamodb_2.12:1.1.1")\
.config("yarn.nodemanager.vmem-check-enabled", "false")\
.config("yarn.nodemanager.pmem-check-enabled", "false").getOrCreate()

df = spark.read.format("csv").option("header","true").load(f'MYS3')

##TODO CODE TO PROCESS FILE

df.write.mode("append").option("tableName", f'MYTABLE').option("targetCapacity","0.99").option("region","MYREGION").format("dynamodb").save()

有人可以帮助我吗?

amazon-web-services apache-spark amazon-dynamodb emr-serverless
1个回答
0
投票

虽然如果不访问集群日志就无法提供帮助,但我建议使用替代包。

com.audienceproject:spark-dynamodb_2.12:1.1.1
是一个存档包,已经好几年没有更新了,上次更新时EMR Serverless还不存在。

我的建议是使用 DynamoDB 和 Spark 的官方 AWS 连接器,该连接器是积极维护的:

https://github.com/awslabs/emr-dynamodb-connector

© www.soinside.com 2019 - 2024. All rights reserved.