有效的CSV文件导入失败,其中包含关闭双引号(")和字段分隔符:字段之间的数据

时间:2014-07-07 12:31:18

标签: google-bigquery

我正在尝试从GS导入CSV文件到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:字符串,FIRST_NAME:字符串,姓氏:字符串,CATEGORY_ID:字符串,logo_type:字符串,COUNTRY_ID:字符串,电话:字符串,phone_2:字符串,地址:字符串,address_2:字符串,城市:字符串,状态:字符串,邮编:串,COMPANY_NAME:串,创建:串,更新:串,订阅:字符串

报告的错误是

File: 0 / Line:1409 / Field:14, Data between close double quote (")
and field separator: field starts with: <Moreno L>

样本数据是:

$ 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

是由MySQL生成的:

SELECT * INTO OUTFILE '/opt/mysql_exports/user_profileA.csv' 
FIELDS TERMINATED BY '^' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
FROM p;

为什么我在BQ中收到错误消息?如何从具有换行符(CRLF混合的MySQL CSV文件中正确导出,因为它是来自Windows或Mac的用户输入)

一些工作ID:
工作ID:aerobic-forge-504:bqjob_r75d28c332a179207_0000014710c6969d_1
工作ID:aerobic-forge-504:bqjob_r732cb544f96e3d8d_0000014710f8ffe1_1

更新

显然对此更重要。我使用了5.5.34-MariaDB-wsrep-log INTO OUTFILE,或者是一个错误或错误,但我得到了无效的CSV导出。我不得不使用其他工具导出适当的CSV。 (工具:SQLYog)

双引号有问题,例如字段14有错误:

3819^Ron ^Wolbert^6^0^1^6123103169^^^^^^^""Lil"" Ron's^0^1282689026^1

1 个答案:

答案 0 :(得分:3)

在CSV中编码双引号的正确方法是在其前面添加另一个双引号。

所以而不是:

"Moreno L Jackson \"THE MOTIVATOR!\"...

有:

"Moreno L Jackson ""THE MOTIVATOR!""...