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