有没有办法写我的spark
的每一行数据框作为 dynamoDB
中的新项目 table ? (在 pySpark
中)
我将此代码用于 boto3
图书馆,但我想知道是否有另一种方式,避免 pandas
和 for loop
脚步 :
sparkDF_dict = sparkDF.toPandas().to_dict('records')
for item in sparkDF_dict :
table.put_item(Item = item)
最佳答案
DynamoDB 提供了一个 BatchWriteItem API .是available in boto3 ,因此您可以在创建 sparkDF_dict 25 个元素的切片后调用它。请注意,BatchWriteItem API 仅支持 writing 25 items at a time ,并且并非所有写入一开始都可能成功(因为它们可能会在服务端受到限制并在响应的 UnprocessedItems 部分返回给您)。您的申请需要查看 UnprocessedItems
在响应中并根据需要重试。
关于apache-spark - 将 Spark 数据帧行作为 dynamoDB 表中的项目写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38057878/