我正在利用LOAD DATA INFILE导入大量的CSV文件(~30 GB)。有些字段没有数据,因此我收到以下错误代码:
Error Code: 1261. Row 1 doesn't contain data for all columns
由于其大小,我宁愿不先尝试编辑CSV文件。我曾尝试使用DEFAULT NULL为具有空白字段的列重新创建表但是我仍然得到相同的错误。感谢任何有关解决方案的帮助。
这是创建表
#c.execute("CREATE TABLE dns_part2_b (date VARCHAR(15), time VARCHAR(25), ip1 VARCHAR(20), ip2 VARCHAR(20), dns VARCHAR(150), arec VARCHAR(10), wsa VARCHAR(10) DEFAULT NULL)")
LOAD DATA命令
LOAD DATA INFILE '/Volumes/data/mycsv.csv' INTO TABLE dns_part2_b FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 LINES;
这是一个不完整记录的例子:
date,time,ip1,ip2,dns,arec,wsa
2013-07-01,00:00:14.301038+00:00,1.1.1.1,2.2.2.2,domain.com,A
和一个完整的
date,time,ip1,ip2,dns,arec,wsa
2013-07-01,00:00:12.335246+00:00,2.2.2.2,1.1.1.1,WPAD,NB,(WS)
谢谢!
答案 0 :(得分:1)
每一行都必须有相同数量的逗号。
date,time,ip1,ip2,dns,arec,wsa
2013-07-01,00:00:14.301038+00:00,1.1.1.1,2.2.2.2,domain.com,A,
如果缺少dns字段,那么它将是(例如)
2013-07-01,00:00:12.335246+00:00,2.2.2.2,1.1.1.1,,NB,(WS)