0
我有一張擁有4百萬條記錄和新數據的表格,每天都有新的數據,我需要在處理新數據後更新表格。目前我正在爲此目的這樣做。我正在使用scala。從Spark Mysql快速更新
val batchSize = 1000
df.rdd mapPartitions (_ grouped batchSize) foreach { batch =>
{
val connection = getConnection();
val statement = connection.createStatement();
batch.foreach { row =>
val query = "UPDATE temp SET file_name='" + row.get(0) + " WHERE id=" + row.get(3);
statement.executeUpdate(query);
}
connection.close();
}
}
這不是確切的查詢,但我這樣做。這需要大約1小時來更新表格。我需要提高性能。我怎樣才能達到性能。
是我使用innoDB,也有索引的關鍵,但最大更新每秒6000到7000和表400萬行約11分鐘。 –
@AtifShahzad你可以嘗試進一步並行'批處理',它是什麼數據類型?你可以像這樣使用'par'關鍵字:'(1 to 10000).toArray.par' –
批處理數據類型是Seq [Row] –