AWS Glue 4.0 调用 DynamicFrame.fromDF 时失败

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

我正在尝试使用 Glue 的 fromDF 方法将 Python 3.10 中的 Spark 数据帧转换为动态帧

from awsglue.dynamicframe import DynamicFrame

DynamicFrame.fromDF(frame, glue_context, "node")

但这会在 CloudWatch 上引发错误,提示

com.mongodb.spark.sql.connector.exceptions.MongoSparkException: Partitioning failed.

进一步检查日志,我发现 Glue 似乎在某处使用了

$collStats
,而 AWS DocumentDB 不支持该功能。请注意,当作业是 Glue 2.0 时,此功能有效,但将其更新到 4.0 已开始导致此问题。
com.mongodb.MongoCommandException: Command failed with error 304: 'Aggregation stage not supported: '$collStats''

我还没有真正尝试解决这个问题,因为这似乎是在幕后发生的,而且我无法访问 Glue 4.0 的源代码。唯一的是,这在 Glue 2.0 中并没有失败。

python pyspark aws-glue aws-documentdb
1个回答
0
投票

对我有用的是将 mongo-spark 的批量读取配置中的分区器设置为

SinglePartitionParititoner
,似乎默认值已更新为使用
SamplePartitioner
而不是在 Glue 4.0 和更新的 mongos-park 连接器版本中,这导致了问题。 参考文档

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