如何将大型 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