有没有办法将spark
数据框的每一行都写为dynamoDB
表中的新项? (在pySpark
)
我在boto3
库中使用了此代码,但我想知道是否有另一种方法,避免pandas
和for loop
步骤:
sparkDF_dict = sparkDF.toPandas().to_dict('records')
for item in sparkDF_dict :
table.put_item(Item = item)
答案 0 :(得分:0)
DynamoDB提供BatchWriteItem API。它是available in boto3,因此您可以在创建sparkDF_dict 25个元素的切片之后调用它。请注意,BatchWriteItem API仅支持writing 25 items at a time,并且并非所有写入都可能首先成功(因为它们可能会在服务端受到限制并在响应的UnprocessedItems部分返回给您)。您的应用程序需要在响应中查看UnprocessedItems
并根据需要重试。