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 に答える