2016-06-27 57 views
5

有沒有辦法將spark數據幀的每一行寫入dynamoDB表中的新項目? (在pySpark在sparkoDB表中寫入火花數據幀行作爲項目

我用這個代碼boto3庫,但我不知道是否有另一種方式,避免了pandasfor loop步驟:

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

有沒有解決這個問題?關於這個東西的文檔很少。似乎將EMR輸出發送到DynamoDB應該是可能的。 – Gopala

回答

0

DynamoDB提供BatchWriteItem API。它是available in boto3,所以你可以在創建25個元素的sparkDF_dict片段後調用它。請注意,BatchWriteItem API僅支持writing 25 items at a time,並且並非所有寫入操作都可能會首先成功(因爲它們可能會在服務端受到限制並在響應的UnprocessedItems部分回覆給您)。您的應用程序需要在響應中查看UnprocessedItems,並根據需要重試。