如何将大型 Pyspark DataFrame 写入 DynamoDB

Posted

技术标签:

【中文标题】如何将大型 Pyspark DataFrame 写入 DynamoDB【英文标题】:How to write large Pyspark DataFrame to DynamoDB 【发布时间】:2020-07-20 22:05:33 【问题描述】:

我有 pyspark 数据框,其中包含 3+ 百万条记录,有必要将其写入 Dynamo db。最好的方法是什么?

【问题讨论】:

这能回答你的问题吗? How to write PySpark dataframe to DynamoDB table? 问题是如何从python代码和巨大的数据帧中做到这一点 【参考方案1】:

如果你想使用 python 来做到这一点,那么你可以这样做:

用足够数量的文件保存 spark df,即如果文件大小为 5 GB,则生成 50 个 100 mb 的文件。 现在编写具有多处理功能的 Python 代码,其中您的进程池将等于可用 CPU 的数量。 使用 dynamodb 的 boto3 batch_writer 写入文件并并行处理所有文件。

为此,您可以使用粘合 python shell 或创建自己的容器并在 fargate 上启动它。

【讨论】:

以上是关于如何将大型 Pyspark DataFrame 写入 DynamoDB的主要内容,如果未能解决你的问题,请参考以下文章

如何遍历大型 Pyspark Dataframe 中列的不同值? .distinct().collect() 引发大任务警告

pyspark/EMR 中大型 DataFrame 上的 collect() 或 toPandas()

在pyspark中以分布式方式有效地生成大型DataFrame(没有pyspark.sql.Row)

将 pyspark groupedData 转换为 pandas DataFrame

Pyspark - 如何将转换后的列与原始 DataFrame 合并?

pyspark案例系列4-dataframe输出到单个文件夹的解决方案