2016-06-27 26 views
5

Esiste un modo per scrivere ogni riga del mio datagramma spark come nuovo elemento in una tabella dynamoDB? (In pySpark)scrive le righe del dataframe spark come elementi nella tabella dynamoDB

Ho usato questo codice con boto3 biblioteca, ma mi chiedo se c'è un altro modo, evitando i passaggi e le for looppandas:

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

C'è stata una soluzione a questo problema? Quindi poca documentazione su questa roba. Sembra che sia possibile inviare l'output EMR a DynamoDB. – Gopala

risposta

0

DynamoDB offre una BatchWriteItem API. È available in boto3, quindi è possibile richiamarlo dopo aver creato sezioni di sparkDF_dict lungo 25 elementi. Nota, l'API BatchWriteItem supporta solo writing 25 items at a time e non tutte le scritture possono avere esito positivo all'inizio (poiché potrebbero essere rallentate sul lato del servizio e tornare a te nella parte UnprocessedItems della risposta). L'applicazione dovrà cercare UnprocessedItems nella risposta e riprovare se necessario.