Associate Data Practitioner(Google Cloud) 無料問題 1 / 10 ・ 分野1: データの準備と取り込み
BigQueryへCSVをロードするとき、autodetectを有効にし、明示スキーマとskip_leading_rowsは指定しなかった。先頭行はname,city、後続行はAlice,TokyoとBob,Osakaで、全フィールドが文字列である。先頭行はどのように扱われるか。
- 列名に使われず読み飛ばされる
- 型推定の失敗として拒否される
- データの1行として取り込まれる
- 列名として採用されて除外される
正解と解説を見る
正解: C
正解の理由
BigQueryは先頭行と他の行の型を比較してCSVヘッダーを推定する。公式資料は、ヘッダーを含めたデータフィールドが全て文字列の場合、先頭行をヘッダーと自動検出せず、データとして取り込むと明記している。今回はskip_leading_rowsも指定していないため、name,cityがデータの1行になる。
違う選択肢
「列名として採用されて除外される」…先頭行が文字列で後続に別の型がある場合の推定と異なり、今回は全フィールドが文字列なのでヘッダーと認識されない。
「列名に使われず読み飛ばされる」…skip_leading_rowsを指定していないため、この条件で先頭行だけを読み飛ばす動作はしない。
「型推定の失敗として拒否される」…文字列の列自体はロード可能である。ヘッダーと判別されないことは、型推定不能によるロード失敗を意味しない。
押さえどころ
列名らしい文字でも、全行が文字列ならヘッダー自動認識に頼れない。読み飛ばす行数を明示し、必要ならスキーマも指定する。
Associate Data Practitioner(Google Cloud)の演習アプリ(無料10問・全問は解錠で)へ