【发布时间】:2020-01-19 09:40:51
【问题描述】:
我有几百个文件代表 400Gb 的 CSV 格式数据,具体说明如下
- 封闭式:双引号
- 分隔符:逗号
- 转义字符:反斜杠
我的数据可能是
a,30,"product, A","my product : \"good product\""
我认为 BQ 将数据评估为
第 1 列:a 第 2 栏:30 第 3 栏:产品 第 4 栏:A col 5:我的产品:“好产品”
我想要
第 1 列:a 第 2 栏:30 第 3 栏:产品,A col 4:我的产品:“好产品”
可以在不使用数据流或数据准备的情况下加载此类文件
bq load --noreplace --source_format=CSV --max_bad_records=1000000 --allow_jagged_rows ods.my_file gs://file/file.csv.gz
我的数据被转移了,bigquery 没有加载行
读取数据时出错,错误信息:Could not parse 'XXX' as int 用于从位置 2121 开始的字段(位置 49)
右双引号 (") 和字段分隔符之间的数据。
【问题讨论】:
-
这些 CSV 是从 MySQL 导出的吗?检查medium.com/google-cloud/…
-
Tks Felipe,这是我无法更改的 anotehr 系统的摘录。无法定义转义字符?
-
可能最快的方法是使用 CLI 工具来转换转义
-
同意费利佩。我最近做了类似的改造。这适用于 Mac,但适用于 Linux 的语法略有不同。
sed -i '' 's/\"\"STRING_WITH_EXTRA_QUOTE_HERE\"/\"STRING_WITH_EXTRA_QUOTE_HERE\"/g' YOUR_FILE.csv
标签: google-bigquery