2016-06-21 114 views
1

我正在通過Avro將數據加載到BigQuery中,我的一列是數組。這似乎加載好,但是,因爲BigQuery追加作爲前綴的列名稱,我需要選擇所有列到他們適當的名稱。我已經包括了--noflatten_results國旗,但查詢失敗與BigQuery:選擇REPEATED字段作爲REPEATED字段

查詢「不能現場order_ids創建有效的輸出模式嘗試在最外面的重命名order_ids到root.order_ids選擇。」:

SELECT 
root.a AS a, 
root.b AS b, 
root.orders_ids AS order_ids, 
root.c AS c, 
root.d AS d 
FROM dataset.table 

回答

2

刪除使用傳統SQL很難從重複字段記錄父記錄。 --noflatten_results是盡力而爲,並不支持重複字段的許多轉換,例如重命名。

如果使用標準SQL,它應該相當簡單。默認情況下標準SQL查詢的結果是未平鋪的,並且引用SELECT子句中的記錄內的字段會將它們從父記錄中刪除。

SELECT root.* from dataset.table; 

使用CLI,可以指定加--nouse_legacy_sql到命令行使用標準的SQL。

相關文檔:

+0

感謝丹尼,這個工程。如果您知道,請跟進。我使用TIMESTAMP將一個時期轉換爲人類可讀的日期,但這在標準中不起作用。有沒有辦法達到同樣的效果? –

+0

我是盲人。錯過了文檔中的「附加時間戳轉換」功能。謝謝。現在好去! –