Чтение огромных файлов CSV с использованием Pandas vs. MySQL - PullRequest
0 голосов
/ 20 октября 2018

У меня есть файл данных CSV 500+ МБ.Мой вопрос заключается в том, что было бы быстрее для манипулирования данными (например, чтения, обработки), если бы Python MySQL клиент был бы быстрее, поскольку вся работа отображается в SQL-запросах, а оптимизация оставлена ​​оптимизатору.Но в то же время Pandas имеет дело с файлом, который должен быть быстрее, чем общение с сервером?

Я уже проверил рабочие процессы "Большие данные" с использованием панд , Лучшие практики для импорта больших файлов CSV , Самый быстрый способ написать большой CSV с Python и Самый эффективный способ анализа большого .csv в python? .Тем не менее, я не нашел никакого сравнения в отношении Pandas и MySQL.

Вариант использования:

Я работаю над набором текстовых данных, который состоит из 1 737 123 строк и 8 столбцов.Я передаю этот набор данных в сеть RNN / LSTM.Я делаю некоторую предварительную обработку перед подачей, которая кодирует, используя настроенный алгоритм кодирования.

Подробнее

У меня есть 250+ экспериментов и 12 архитектур (дизайн разных моделей).

Я запутался, мне что-то не хватает.

1 Ответ

0 голосов
/ 20 октября 2018

Нет сравнения в Интернете, потому что эти два сценария дают разные результаты:

Таким образом, производительность будет зависеть от

  • того, сколько данных необходимо передать по низкоскоростным каналам (IPC, диск, сеть)
  • как сравнительно быстро происходит передача по сравнению с обработкой (какой из них является узким местом)
  • какой формат данных предпочитают ваши средства обработки (т. е. какие дополнительные преобразования потребуются)

Например:

  • Если ваше средство обработки может находиться в том же процессе (Python), который будет использоваться для его чтения, предпочтительным является чтение его непосредственно в типы Python, поскольку вам не нужно передавать все это в MySQ.L процесс, затем снова (преобразование форматов каждый раз).
  • OTOH, если ваше средство обработки реализовано в каком-либо другом процессе и / или языке, или, например, находится в вычислительном кластере, подключение его к MySQL напрямую может бытьбыстрее, устраняя сравнительно медленный Python из уравнения, и потому что вам все равно придется снова передавать данные и преобразовывать их в собственные объекты приложения обработки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...