batchsize
このオプションが、spark jdbc を使用した挿入操作にどのような影響を与えるかを知りたかったのです。これは、一括挿入に似た 1 つの挿入コマンドを使用する一括挿入または最後にコミットされる挿入コマンドのバッチを意味しますか?
これはドキュメントに明確に記載されていないため、誰かが明確にすることができますか?
batchsize
このオプションが、spark jdbc を使用した挿入操作にどのような影響を与えるかを知りたかったのです。これは、一括挿入に似た 1 つの挿入コマンドを使用する一括挿入または最後にコミットされる挿入コマンドのバッチを意味しますか?
これはドキュメントに明確に記載されていないため、誰かが明確にすることができますか?
ソース コードによると、オプションは のメソッドにbatchsize
使用され、実行のためにコマンドのバッチをデータベースに送信できます。executeBatch
PreparedStatement
キーコード:
val stmt = conn.prepareStatement(insertStmt)
while (iterator.hasNext) {
stmt.addBatch()
rowCount += 1
if (rowCount % batchSize == 0) {
stmt.executeBatch()
rowCount = 0
}
}
if (rowCount > 0) {
stmt.executeBatch()
}
あなたの質問に戻りますが、あるのは事実です
挿入コマンドのバッチ
しかし、これらの挿入の一部のみが正常に実行されても問題ないため、ステートメントgets committed at the end
は間違っています。ここには追加の取引要件はありません。ところで、指定されていない場合、Spark はデフォルトの分離レベルを採用します。