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

Our*_*ach 5 amazon-dynamodb apache-spark pyspark

有没有办法将我的spark数据帧的每一行写为dynamoDB表中的新项?(中pySpark)

我在boto3库中使用了这个代码,但我想知道是否有另一种方法,避免使用pandas和执行for loop步骤:

sparkDF_dict = sparkDF.toPandas().to_dict('records')
for item in sparkDF_dict :
    table.put_item(Item = item)
Run Code Online (Sandbox Code Playgroud)

Ale*_*kis 0

DynamoDB 提供BatchWriteItem API。它在 boto3 中可用,因此您可以在创建 SparkDF_dict 25 个元素长的切片后调用它。请注意,BatchWriteItem API 仅支持一次写入 25 个项目,并且并非所有写入一开始都会成功(因为它们可能会在服务端受到限制,并在响应的UnprocessedItems部分中返回给您)。您的应用程序需要查看UnprocessedItems响应并根据需要重试。