bq loadのCSVにダブルクォーテーションや改行を含むときの対処法

ダブルクォーテーション

まずはダブルクォーテーションの対処法についてですが、「“”」 このように
ダブルクォーテーションを2つ続けて出力することでエスケープできます。

実際に以下のCSVファイルを作成しロードしてみます

CSVファイル(bqload_test.csv)

"id","name","description"
"1","double_quote","""ダブルクォーテーション""はいるかな?"

bq loadコマンド実行

bq load --autodetect test.bqload_test ./bqload_test.csv

正しくデータが作成されました

改行

「–allow_quoted_newlines」オプションをつけてbq loadすることで
改行が含まれた文字列をロードすることができます。

実際に以下のCSVファイルを作成しロードしてみます

CSVファイル(bqload_test.csv)

"id","name","description"
"1","newline","改行
できるかな?"

bq loadコマンド実行

bq load --autodetect --allow_quoted_newlines test.bqload_test ./bqload_test.csv

正しくデータが作成されました

最後に

基本的にはCSVの標準仕様(RFC)に準拠する形で対応できました。
ダブルクォーテーションのエスケープを\エスケープで最初やろうとしてハマりました。