1

所以我有一个看起来像这样的 Twitter 数据文件

Robert_Aderholt^&^&^2013-06-12 18:32:02^&^&^RT @financialcmte: In 2012, the Obama Admin published 1,172 new regulations totaling 79,000 pages. 57 were expected to have costs of at...
Robert_Aderholt^&^&^2013-06-12 13:42:09^&^&^The Administration's idea of a 'recovery' is 4 million fewer private sector jobs than the average post WWII recovery http://t.co/gSVW0Q8MYK
Robert_Aderholt^&^&^2013-06-11 13:51:17^&^&^As manufacturing jobs continue to decrease, its time to open new markets #4Jobs http://t.co/X2Mswr1i43

(^&^&^ 词是分隔符,我选择该分隔符是因为它不太可能出现在任何推文中。)

该文件长 90663 行(我通过键入“wc -l tweets_parsed-6-12.csv”进行检查)。

但是,当我将它们加载到表中时,我只得到一个包含 40456 个条目的表:

mysql> source ../code/tweets2tables.sql;
Query OK, 0 rows affected (0.03 sec)

Query OK, 0 rows affected (0.08 sec)

Query OK, 40456 rows affected, 2962 warnings (0.81 sec)
Records: 40456  Deleted: 0  Skipped: 0  Warnings: 2962

mysql> SELECT COUNT(*) FROM tweets;
+----------+
| COUNT(*) |
+----------+
|    40456 |
+----------+
1 row in set (0.02 sec)

这是为什么?我删除了所有不包含 ^&^&^ 的行,所以我不认为这些数据有什么有趣的事情,但我可能是错的。

我的加载代码是

DROP TABLE IF EXISTS tweets;

CREATE TABLE tweets (
    twitter_id      VARCHAR(20),
    post_date       DATETIME,
    body            VARCHAR(140)
);

LOAD DATA
    LOCAL INFILE 'tweets_parsed-6-12.csv'
    INTO TABLE tweets
    FIELDS TERMINATED BY '^&^&^'
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    (twitter_id, post_date, body);
4

1 回答 1

1

未加载的行可能包含该"字符。如果您指定字段以 结尾",则其中的引号应像这样转义 - ""(双引号)。

之前的OPTIONALLY关键字ENCLOSED可能会有所帮助。

于 2013-06-13T00:05:19.543 回答