我們使用BigQuery的Python API(特別是jobs資源)在現有的BigQuery表上運行查詢,並通過將結果數據集插入到新的BigQuery表(destinationTable)中來導出結果。Google BigQuery API,如何設置destinationTable的字段類型?
有沒有辦法更新新創建的表的模式並設置特定的數據類型?默認情況下,所有字段都設置爲「字符串」類型,但我們需要其中一個字段爲「時間戳」。
我們使用BigQuery的Python API(特別是jobs資源)在現有的BigQuery表上運行查詢,並通過將結果數據集插入到新的BigQuery表(destinationTable)中來導出結果。Google BigQuery API,如何設置destinationTable的字段類型?
有沒有辦法更新新創建的表的模式並設置特定的數據類型?默認情況下,所有字段都設置爲「字符串」類型,但我們需要其中一個字段爲「時間戳」。
目標表的字段類型將自動設置。如果您需要將字符串轉換爲整數或時間戳,請在查詢中進行。
這將創建的目標表中帶有一列(字符串):
SELECT x FROM (SELECT "1" x)
這將創建的目標表中有一列(整數):
SELECT INTEGER(x) AS x FROM (SELECT "1" x)
這將創建的目標表帶有一列(時間戳):
SELECT TIMESTAMP(x) AS x FROM (SELECT "2015-10-21 04:29:00" x)
爲了設置destinat的字段類型因爲結果集描述了目標表中的新字段類型,所以需要將CAST轉換爲查詢中的新類型。
SELECT TIMESTAMP(t)作爲噸FROM(SELECT 「2015年1月1日00:00:00」 噸)
選擇單元格* FROM publicdata:samples.trigrams下限0。
我正在使用來自publicdata:樣本數據集的表也可用於您,因此您也可以運行這些測試。在上面的查詢中,'cell'是一個記錄,如果你設置了Flatten Results = FALSE,你會發現'cell'在你的dest表中仍然是一個RECORD。
SELECT cell.value,cell.volume_count FROM publicdata:樣品。trigrams LIMIT 0;
運行上述查詢後,「單元格」記錄將只包含您指定的字段。
SELECT cell.value AS cell.newvalue FROM publicdata:樣品.trigrams LIMIT 0;
SELECT
actor_attributes.blog,
repository.created_at,
repository.url AS actor_attributes.url
FROM publicdata:samples.github_nested
LIMIT 0;
因此,爲了在記錄中添加一個字段,您需要導出數據,在BigQuery之外處理數據,然後使用新模式加載它。