3

我的BigQuery資料表的架構時丟失的字段和未知/額外字段的處理是這樣的:BigQuery的進口JSON

A:STRING,B:STRING,C:STRING,D:STRING,E:STRING,F:STRING,createdAt:INTEGER,updatedAt:INTEGER,I:STRING 

雲存儲文件(JSON)有一個單一的項目,它看起來像:

{ 
    "A": "AAA", 
    "B": "BBB", 
    "E": "EEEEE", 
    "F": "FFFFF", 
    "createdAt": 1364226047214, 
    "XXXX": "XXXXXXXXXXX", 
    "I": "IIIIII", 
    "YYYY": { 
     "Y1": 1.99, 
     "Y2": "YYYYYY" 
    }, 
    "location": { 
     "city": "Amherst", 
     "region": "NS", 
     "country": "CA" 
    }, 
    "purchaseDate": 1364225968000, 
    "updatedAt": 1364226052634 
} 

我得到以下錯誤:與上述錯誤

Errors: 
Line:1/Column:173, The field "createdAt" was not found on the current message. 
Too many errors encountered. Limit is: 0. 

兩個問題:

  1. BigQuery如何處理數據中缺失的字段?並非所有 字段默認都是可空的?

  2. BigQuery如何處理數據中的未知/額外字段?

回答

4

我剛纔測試使用webUI您的架構/數據,並得到了以下錯誤:

Line:1/Column:84, The field "XXXX" was not found on the current message. 
Too many errors encountered. Limit is: 0. 
  1. 是,字段默認空。如果要更改它,您需要明確定義字段模式(可爲空,必需或重複)。如果您的JSON數據中缺少必填字段,您將會收到錯誤消息,但是如果此相同字段爲空,則它將起作用。

  2. 正如您在「XXXX」字段中看到的錯誤,如果您的數據包含額外字段,它將失敗。 您的數據必須按照documentation描述表模式匹配,且不能修改表模式是immutable(你可以找到一些信息here如果您需要使用另一個表添加字段)

  3. 另一個對於處理JSON數據的人可能有用的是,每個數據行必須包含在文件中的單行(如google example file)中。如果你的json數據格式很好,數據導入將失敗。

希望這有助於

0

我這周在最後的日子裏我已經在代碼中採取一看,問題是,該BQ的TableRow沒有所有的元素有這個問題,那它在Big Query TableSchema上定義。

請重新檢查您在TableRow上添加的所有參數,並且這個參數在TableSchema上正確表示。

祝你好運!

+0

歡迎在堆棧溢出:)請熟悉如何發佈一個很好的答案。你的回答應該是一個評論:) – DawidPi

+0

@DawidPi我不同意。當他有這個問題時,他很清楚地說明了他的解決方案。如果這解決了問題,這是一個可以接受的答案。 – konqi