2017-07-29 18 views
1

bigqueryテーブルにcsvファイルを読み込もうとしました。型がINTEGERの列がありますが、欠損値の中にはNULLがあります。だから私はロードするために、コマンドBQの負荷を使用する場合、次のエラーが発生しました:だから私はこれに対処するための最善の解決策は何疑問に思って、ロードするためにBQするための第1のデータを再処理する必要がBigQueryフィールドの 'null'をintとして解析できませんでした

Could not parse 'null' as int for field

+1

確認するには、実際にはnullではなく、文字列 ''null ''を持つように見えます。そうですか? –

+0

@ElliottBrossardそれは正しいので、csvファイルでは,,の代わりにヌルのようなものです。 –

答えて

2

予想されるスキーマとデータになるためには、データを変換する必要があります。 INTEGERの代わりに、STRING型の列を指定します。長期的に使用する予定のないテーブルにCSVファイルを読み込みます。 YourTempTable。 BigQuery UIで[Show Options]をクリックして、目的のテーブル名を使用するテーブルを選択します。今すぐクエリを実行します。

#standardSQL 
SELECT * REPLACE(SAFE_CAST(x AS INT64) AS x) 
FROM YourTempTable; 

これは'null'nullとして扱われる整数に文字列値を変換します。

+0

解決に感謝します。テーブルには、実際には整数型の他に多くの型の列があります。私はこれを毎日行うためにデータパイプラインを構築しているからです。私はcsvファイルを処理してすべてのヌルを削除する方が良いかどうか疑問に思います。 –

+0

これはうまくいくかもしれません。あるいは、そのままデータをロードして、上で提案した形式のクエリを使って論理ビューを定義することができます。テーブルを直接照会するのではなく、文字列から整数への変換を実行する論理ビューを照会します。 –