2013-06-12 2 views
1

그래서 나는이MySQL 테이블에 모든 데이터가로드되지 않는 이유는 무엇입니까?

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"라고 입력하여 확인했습니다. 나는 테이블에로드 할 때

그러나, 나는 단지 40,456 항목으로 테이블을 얻을 : 왜 그

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); 
+1

줄의 내부 줄 바꿈이'\ n'입니까? 위와 같이 여러분의 데이터는 모든 필드를 따옴표로 묶지 않으므로, 'OPTIONALLY ENCLOSED BY' '' '를 수행해야합니다. –

+1

데이터를 파일로 다시 덤프 할 수 있습니다. 형식이 올바르게 지정되었는지 확인한 다음 diff를 실행하여 누락 된 항목의 패턴을 찾습니다. – Kitsune

+1

또한 2962 개의 경고가 있음에 유의하십시오. '경고 경고; 그게 뭔지 알기 위해서 ... –

답변

1

아마로드 " 문자가 포함되지 않은 선이다. 입력란이 "으로 끝나도록 지정하면 그 내부의 따옴표는 - "" (큰 따옴표)와 같이 이스케이프되어야합니다.

OPTIONALLY 키워드가 ENCLOSED보다 먼저 표시 될 수 있습니다.

관련 문제