将spark数据帧行写为dynamoDB表中的项

时间:2016-06-27 15:29:51

标签: apache-spark amazon-dynamodb pyspark

有没有办法将spark数据框的每一行都写为dynamoDB表中的新项? (在pySpark

我在boto3库中使用了此代码,但我想知道是否有另一种方法,避免pandasfor loop步骤:

sparkDF_dict = sparkDF.toPandas().to_dict('records')
for item in sparkDF_dict :
    table.put_item(Item = item)

1 个答案:

答案 0 :(得分:0)

DynamoDB提供BatchWriteItem API。它是available in boto3,因此您可以在创建sparkDF_dict 25个元素的切片之后调用它。请注意,BatchWriteItem API仅支持writing 25 items at a time,并且并非所有写入都可能首先成功(因为它们可能会在服务端受到限制并在响应的UnprocessedItems部分返回给您)。您的应用程序需要在响应中查看UnprocessedItems并根据需要重试。