2017-07-29 102 views
1

試圖將csv文件加載到bigquery表中。有些列的類型是INTEGER,但有些缺失值是NULL。所以,當我使用命令BQ負荷加載,得到了以下錯誤:BigQuery無法解析爲'int'字段

Could not parse 'null' as int for field

所以我想知道有什麼辦法解決這個問題的最佳解決方案,必須先重新處理數據BQ加載?

+1

要確認...它看起來像你的值是字符串「null」,而不是實際爲空。是對的嗎? –

+0

@ElliottBrossard這是正確的,所以在csv文件中,它就像null,而不是,,。 –

回答

2

您需要轉換數據才能得到預期的模式和數據。而不是INTEGER,將列指定爲具有STRING類型。將CSV文件加載到您不打算長期使用的表格中。 YourTempTable。在BigQuery UI中,單擊「顯示選項」,然後選擇一個包含所需表名稱的目標表。現在運行查詢:

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

這將字符串值轉換到'null'被視爲null整數。

+0

非常感謝解決方案。該表實際上有許多整數類型的列以及其他類型的列。由於我每天都在建立一個數據管道。我想知道是否會更好地處理csv文件以刪除所有null,以便null,變爲,,然後執行加載。 –

+0

這可能會起作用,或者您可以按原樣加載數據,然後使用上面建議的形式查詢定義邏輯視圖。不是直接查詢表,而是查詢邏輯視圖,該視圖將字符串轉換爲整數。 –

相關問題