我正在尝试将 CSV 文件从 GS 导入到 BQ 中。
我使用的cmd是:
$ bq load --field_delimiter=^ --quote='"' --allow_quoted_newlines --allow_jagged_rows --ignore_unknown_values wr_dev.drupal_user_profile gs://fls_csv_files/user_profileA.csv uid:string,first_name:string,last_name:string,category_id:字符串,logo_type:字符串,country_id:字符串,电话:字符串,phone_2:字符串,地址:字符串,address_2:字符串,城市:字符串,州:字符串,zip:字符串,公司名称:字符串,创建:字符串,更新:字符串,订阅:字符串
报告的错误是
File: 0 / Line:1409 / Field:14, Data between close double quote (")
and field separator: field starts with: <Moreno L>
Run Code Online (Sandbox Code Playgroud)
样本数据是:
$ sed -n '1409,1409p' user_profileA.csv
$ 1893^"Moreno"^"Jackson"^17^0^1^"517-977-1133"^"517-303-3717"^""^""^""^""^""^"Moreno L Jackson \"THE MOTIVATOR!\" "^0^1282240785^1
Run Code Online (Sandbox Code Playgroud)
这是从 MySQL 生成的:
SELECT * INTO OUTFILE '/opt/mysql_exports/user_profileA.csv'
FIELDS TERMINATED BY '^'
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM p;
Run Code Online (Sandbox Code Playgroud)
为什么我在 BQ 中收到错误消息?如何正确从具有换行符的 MySQL CSV 文件中导出(CR并且LF是混合的,因为它是来自 Windows 或 Mac 的用户输入)
几个作业 ID:
作业 ID:aerobic-forge-504:bqjob_r75d28c332a179207_0000014710c6969d_1
作业 ID:aerobic-forge-504:bqjob_r732cb544f96e3d8d_0000014710f8ffe1_1
更新
显然更多的是这个。我使用了5.5.34-MariaDB-wsrep-logINTO OUTFILE,要么是错误,要么是错误,但我得到了无效的 CSV 导出。我必须使用其他工具来导出正确的 CSV。(工具:SQLYog)
它有双引号问题,例如此处的字段 14 有错误:
3819^Ron ^Wolbert^6^0^1^6123103169^^^^^^^""Lil"" Ron's^0^1282689026^1
Run Code Online (Sandbox Code Playgroud)
2019 年更新:
试试这个作为替代方案:
更长的操作方法:
在 CSV 中对双引号进行编码的正确方法是在其前面放置另一个双引号。
所以而不是:
"Moreno L Jackson \"THE MOTIVATOR!\"...
Run Code Online (Sandbox Code Playgroud)
有:
"Moreno L Jackson ""THE MOTIVATOR!""...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2759 次 |
| 最近记录: |