2016-12-21 49 views
1

我想加載一個CSV文件,它是控制+ A分開成bigquery。 bq加載命令的參數-F的參數應該是什麼?我嘗試過的所有選項在加載時都會導致錯誤。如何加載csv數據,這是控制+分離成bigquery

+0

您嘗試過的參數是什麼?它們給出了什麼錯誤? – whrrgarbl

+0

我從來沒有聽說過控制+分離器。你可能想用不同的分隔符重新生成文件。 Control + a通常代表選擇一切。 – Pentium10

+0

已嘗試過\ u0001,\ x01,它們與「字段分隔符必須是單個字符」錯誤失敗。 – amareshwari

回答

1

我猜測Control + A被用於OP想要加載到BigQuery中的一些傳統格式。另一方面,當難以選擇任何通常使用的分隔符時,可以選擇Control + A。

我的建議是先裝載您的CSV文件,沒有任何分隔符,這樣整個行將被加載爲一個場

假設裝入不是Temptable你行看起來像下面只有一個叫FullRow列。

'value1^Avalue2^Avalue3' 

其中^ A是「看不見」的角色

所以,你加載你的文件至BigQuery之後 - 現在你可以解析它分離柱,它的東西,如寫入最終見下表

SELECT 
    REGEXP_EXTRACT(FullRow, r'(?:\w*\x01){0}(\w*)') AS col1, 
    REGEXP_EXTRACT(FullRow, r'(?:\w*\x01){1}(\w*)') AS col2, 
    REGEXP_EXTRACT(FullRow, r'(?:\w*\x01){2}(\w*)') AS col3 
FROM TempTable 

上面證實可以正常工作,因爲我多次使用這種方法。適用於傳統和標準SQL

+0

@amareshwari - 你有機會嘗試以上方法嗎? –