Ошибка при загрузке CSV на MySQL с использованием модуля Python и odo
Я решил попробовать odo для обработки моих csv-данных, потому что это, предположительно, намного быстрее, чем делать это с пандами, но я не могу заставить это работать.
Это их документация о переносе 30-гигабайтного CSV-файла в базу данных 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
Я попытался сделать то же самое в моем локальном экземпляре MySQL на моей OS X El Capitan, но он выдает мне следующую ошибку:
/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)")
Что еще я могу проверить?
1 ответ
Ну, это потому, что MySQL не может получить доступ к файлу. Кажется, что это должно быть в папке установки mysql, которая в моем случае была /usr/local/mysql-5.6.20-osx10.7-x86_64/
,
Я пытался поместить его в папку данных, /usr/local/mysql-5.6.20-osx10.7-x86_64/data/my_db
и это не сработало.