我正在尝试从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中收到错误消息?如何从具有换行符(CR
和LF
混合的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
答案 0 :(得分:3)
在CSV中编码双引号的正确方法是在其前面添加另一个双引号。
所以而不是:
"Moreno L Jackson \"THE MOTIVATOR!\"...
有:
"Moreno L Jackson ""THE MOTIVATOR!""...