如何加载csv数据,这是控件+ A分隔成bigquery

时间:2016-12-21 13:55:32

标签: google-bigquery

我正在尝试加载一个CSV文件,它是一个控件+ A分隔成bigquery。我为bq load命令传递-F参数的选项应该是什么?我尝试的所有选项都会在加载时导致错误。

1 个答案:

答案 0 :(得分:2)

我猜想Control + A用于OP希望加载到BigQuery的一些遗留格式中。另一方面,当难以选择任何通常使用的分隔符时,可以选择Control + A.

我的建议是加载没有任何分隔符的CSV文件,因此整行将作为一个字段加载

假设你的行加载到TempTable中,只有一个名为FullRow的列。

 'value1^Avalue2^Avalue3'   

其中^ A是“隐形”字符

因此,在将文件加载到BigQuery之后 - 现在您可以将其解析为单独的列并使用下面的内容将其写入final table

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