2016-12-12 1 views
0

Excel에서 완전히 열 수없는 큰 CSV 파일이 있습니다.큰 CSV 파일에서 데이터 가져 오기

내가 MySQL의에이 데이터를 가져올 수있는 스크립트가 스크립트가 일부 날짜 열을 변환하고 다른 모든 수입 :

LOAD DATA LOCAL INFILE 'A:\\My Files\\Desktop\\SPX\\Book2.csv' 
INTO TABLE spx_options_data2 
COLUMNS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
ESCAPED BY '"' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES 
(@date, symbol, under, @expiration, strike, put_call, bid, ask, price, volume, open_interest, implied_vol, delta, gamma, rho, theta, vega, nonstd) 
SET date = STR_TO_DATE(@date, '%d/%m/%Y'), 
expiration = STR_TO_DATE(@expiration, '%d/%m/%Y'), 
implied_vol = IF(implied_vol = "",NULL,implied_vol); 

내가 전체 파일을 가져 오려고, 행의 대부분은 건너 뛰고과를 가져온 작은 데이터는 날짜 필드가 0000-00-00입니다. MySQL이 제공 에러 응답의 단편이다 영향

580 행 (들) (64) (S)주의 : 1,411 ............ 잘못된 날짜 값 '2014년 1월 2일'기능 str_to_date 1048 'date'열이 일 수 없음 ......... 1411 잘못된 날짜 시간 값 : '2014-01-18'(함수 ) str_to_date .......... 기록 : 1,333,176 삭제 : 0 건너 뛴 : 1,332,596 경고 : 그러나 7,354,726

나는 경우 :

  1. 열기 모든 데이터를 엑셀 엑셀
  2. 복사에서 csv 파일을 다른 CSV로 열 수 있습니다 내가 더 잘 SUC를 얻을 수

파일

  • 시험 후 파일 가져 오기 운 :

    1,035,456 행 (들) 영향을, 64 경고 (들) : .......... 1292 잘림 잘못된 10 진수 값 : ''............... 1062 중복 된 항목 'PRIMARY'키에 '2014-01-02-SPX-1450-C-2014-01-18'. 1366 잘못된 진수 값 : 1,048,575 삭제 : 0 건너 뛴 : 13,119 경고 : 52,540

    질문

    1. 무엇입니까 ...... 기록은 행 2262에서 implied_vol ''열의 '' 큰 CSV 파일을 MySQL로 가져 오는 가장 좋은 방법은 무엇입니까?
    2. 동일한 소스 및 형식의 데이터 임에도 불구하고 왜 다른 결과가 나옵니까? (1035456 개의 행이 두 번째 경우에만 VS가 처음에는 580 개만 가져옴)
    3. 왜 많은 행이 건너 뛰었습니까?

    도움 주셔서 감사합니다. ADyson에

  • +0

    유효한 csv 파일인지 확인 했습니까? – Marichyasana

    +1

    은 데이터 품질 문제가있는 것처럼 보입니다. 잘못된 날짜 형식, 숫자 형식 등 모든 행을 가져 오기 전에 먼저 정렬해야합니다. 두 수입 간의 불일치는 아마도 Excel이 파일을 저장하기 전에 파일에 일종의 처리를했기 때문일 수 있습니다. 두 파일의 샘플을 사용할 필요없이 말하기가 어렵습니다. 또한 Excel이 CSV를 여는 유일한 방법이 아니므로 메모장 + +와 같은 텍스트 편집기에서 확인하여 확인할 수 있습니다. – ADyson

    +0

    안녕 모두, 단지 의견의 일부에 응답 : (1) 예는 유효한 CSV 파일, 즉 파일 속성 이렇게 말한다. (2) 데이터는 온라인 금융 데이터베이스에서 제공되므로 형식이 동일해야합니다. (3) 복사 및 붙여 넣은 부분은 원래 csv 파일의 파일 크기의 76 %이므로 비슷한 비율로 오류/형식 지정 문제가있을 것으로 예상됩니다. (4) 덕분에 나는 Notedpad ++에게 지금 –

    답변

    0

    감사 :

    Q1. 대형 CSV 파일을 MySQL로 가져 오는 가장 좋은 방법은 무엇입니까?

    파일을 메모장 + +에서 볼 때 서식이 예상 한대로, 특히 날짜와 일치하는지 확인하십시오.

    Q2. 동일한 소스 및 형식의 데이터 임에도 불구하고 왜 다른 결과가 나옵니까? (1035456 개의 행이 두 번째 경우에만 VS 580이 첫 번째로 가져옴)?

    몰라 는 그 고정, 중요하지 않습니다.

    Q3. 너무 많은 행이 왜 건너 뛰었습니까?

    기본 키 문제가 가져온 데이터를 방지했다. 다시 한 번 메모장 + +에서보고 몇 가지 문제를 발견하면 문제가 해결되었습니다.

    관련 문제