2016-06-07 5 views
0

팬더로 작업하는 것보다 빠른 방법 일 수 있으므로 을 CSV 데이터 처리에 사용하기로 결정했으나 제대로 작동하지 않습니다.Python 및 odo 모듈을 사용하여 mysql에서 csv를로드 할 때 오류가 발생했습니다.

이것은 MySQL 데이터베이스에 30 기가 바이트 csv 파일 마이그레이션에 대한 자신의 문서입니다 : 내 OS X 엘 캐피 내 로컬 MySQL의 인스턴스에서 같은 시도

In [1]: %time t = odo('all.csv', 'mysql+pymysql://localhost/test::nyc') 
CPU times: user 1.32 s, sys: 304 ms, total: 1.63 s 
Wall time: 20min 49s 

그러나 그것은 나에게 다음과 같은 오류를 제공합니다 :

처음에는
/Library/Python/2.7/site-packages/PyMySQL-0.7.1-py2.7.egg/pymysql/err.pyc in _check_mysql_exception(errinfo) 
    113 
    114  # couldn't find the right error number 
--> 115  raise InternalError(errno, errorvalue) 
    116 
    117 

InternalError: (pymysql.err.InternalError) (13, u"Can't get stat of '/path/to/test.csv' (Errcode: 13 - Permission denied)") [SQL: u'LOAD DATA INFILE %(path)s\n   INTO TABLE test_file2\n   CHARACTER SET %(encoding)s\n   FIELDS\n    TERMINATED BY %(delimiter)s\n    ENCLOSED BY %(quotechar)s\n    ESCAPED BY %(escapechar)s\n   LINES TERMINATED BY %(lineterminator)s\n   IGNORE %(skiprows)s LINES\n   '] [parameters: {'escapechar': '\\', 'encoding': 'utf8', 'skiprows': 1, 'delimiter': ',', 'lineterminator': u'\n', 'quotechar': '"', 'path': '/path/to/test.csv'}] 

, 나는 그것이 파일 권한 오류라고 생각하지만 나는 ODO 파일에 액세스 할 수 있도록 테이블이 성공적으로 오른쪽 열 이름으로 생성되는 것을 발견했다. 따라서 오류를 실제로 이해할 수는 없습니다. (13, u"Can't get stat of '/path/to/test.csv' (Errcode: 13 - Permission denied)")

그 밖의 무엇을 확인할 수 있습니까?

+0

파일 시스템 수준 사용 권한. 오류 13은 파일 시스템 수준의 문제를 나타냅니다. csv 파일 자체에 대한 액세스 권한이 없을 수도 있습니다. – Shadow

+0

글쎄, 내가 접근 할 수 있다는 것을 안다. 게시물에서 말한 것처럼 odo는 실제로 csv에있는 열 이름이있는 테이블을 만듭니다. 문제는 MySQL이 해당 파일에 액세스 할 수 없다는 것입니다. 그러나 이미 777에 대한 사용 권한을 변경했으며 부모 폴더는 최소한 "읽기"권한을가집니다. – estemendoza

답변

0

글쎄, MySQL이 파일에 액세스 할 수 없었기 때문입니다. 그것은 내 경우에 /usr/local/mysql-5.6.20-osx10.7-x86_64/했다 MySQL 설치 폴더 안에 있어야 할 것으로 보인다.

데이터 폴더 /usr/local/mysql-5.6.20-osx10.7-x86_64/data/my_db에 넣으려고했는데 제대로 작동하지 않았습니다.