エラー
Caused by: shaded.databricks.com.google.api.client.googleapis.json.GoogleJsonResponseException: 412 Precondition Failed
PUT https://storage.googleapis.com/upload/storage/v1/b/xxx/o?ifGenerationMatch=0&name=xxx&uploadType=resumable&upload_id=xxx
{
"code" : 412,
"errors" : [ {
"domain" : "global",
"location" : "If-Match",
"locationType" : "header",
"message" : "At least one of the pre-conditions you specified did not hold.",
"reason" : "conditionNotMet"
} ],
"message" : "At least one of the pre-conditions you specified did not hold."
}
原因
転送先Databricksでは、バッチサイズを超えるデータを転送する際にデータを複数のバッチファイルに分割し、それぞれに COPY INTO を発行します。複数のバッチファイルが並列処理された際に、タイミングによっては Google Cloud Storage への書き込みが競合し、このエラーが発生することがあります。
対処法
転送設定のSTEP1にある転送先Databricksの詳細設定でバッチサイズを大きくすることで、バッチファイルの分割数を減らし、エラーの発生を抑えることができます。
- 転送設定STEP1の転送先Databricksの設定の「詳細設定」を開く
- バッチサイズの値を現在より大きくする
例:デフォルト値50MBから倍の100MBにする - 設定を保存して転送を再実行する
コメント
0件のコメント
記事コメントは受け付けていません。