2016-06-27 17 views
5

veri çerçevemin her bir satırını dynamoDB tablosunda yeni bir öğe olarak yazmanın bir yolu var mı?spark dataframe satırlarını dynamoDB tablosundaki öğeler olarak yazın

(pySpark olarak) Ben boto3 kütüphane ile bu kodu kullanılır, ancak pandas ve for loop adımları kaçınarak, başka bir yol var mı acaba:

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

Bu sorunun çözümü var mı? Bu konuda çok az dokümantasyon var. DynamoDB'ye EMR çıkışı göndermek gibi bir şey mümkün görünüyor. – Gopala

cevap

0

DynamoDB bir BatchWriteItem API sunmaktadır. Bu available in boto3, bu yüzden sparkDF_dict 25 eleman uzunluğunda dilim oluşturduktan sonra bunu çağırabilirsiniz. Not, BatchWriteItem API yalnızca writing 25 items at a time'u destekler ve tüm yazmalar ilk başta başarılı olmayabilir (hizmet tarafında daraltılmış ve yanıtın UnprocessedItems bölümünde size geri dönebileceğinden). Uygulamanızın yanıtında UnprocessedItems'a bakmanız ve gerektiğinde yeniden denemeniz gerekecektir.