我們使用foreachRDD將spark數據寫入AmazonDynamoDB,但速度非常慢,我們的消耗速率爲10,000/sec,寫入10,000需要35min ...是一段代碼..Spark:如何使用foreachPartition對數據庫進行調用
tempRequestsWithState is Dstream
tempRequestsWithState.foreachRDD { rdd =>
if ((rdd != null) && (rdd.count() > 0) && (!rdd.isEmpty())) {
rdd.foreachPartition {
case (topicsTableName, hashKeyTemp, attributeValueUpdate) => {
val client = new AmazonDynamoDBClient()
val request = new UpdateItemRequest(topicsTableName, hashKeyTemp, attributeValueUpdate)
try client.updateItem(request)
catch {
case se: Exception => println("Error executing updateItem!\nTable ", se)
}
}
case null =>
}
}
}
從研究得知,使用foreachpartition和創建每個分區的連接將有助於..但不知道如何去寫代碼,它..will很大,如果有人可以欣賞幫助... ...此外任何其他建議,以加快寫作是非常感謝