Сборка книги заказов Nasdaq ITCH -> Ошибка EOF при расширении файла.gz

#machine-learning #ftp #gzip #finance #orderbook

Вопрос:

Я пробую свои первые шаги в ML, используя IPython Jupter, мне посоветовали начать с набора данных Nasdaq order book ITCH для создания моделей. Я выполняю те же действия, что и в этом уроке на github.

Я не могу распаковать/развернуть файлы из набора данных ITCH при выполнении функции may_be_download(url) и следующего кода (ячейка кода № 5 в учебнике).:

 file_name = may_be_download(urljoin(FTP_URL, SOURCE_FILE))
date = file_name.name.split('.')[0]
 

Я получаю следующую ошибку; Ошибка EOFError: Сжатый файл закончился до того, как был достигнут маркер конца потока

Я также не могу просто распаковать файл, нажав на него в Finder или используя gzip amp; gunzip методы в терминале.

Я предпринял следующие шаги:

  • Выполнил все предыдущие ячейки кода (1-4)
  • Скопировал файл 03272019.NASDAQ_ITCH50.gz в папку, указанную data в относительном пути
    • Сначала я пошел, щелкнул по ссылке с образцом в блокноте
    • Затем вошел в систему как гость и перешел в папку Nasdaq ITCH
    • Затем нашел файл 03272019.NASDAQ_ITCH50.gz и скопировал его в локальную папку.
  • Ячейка с выполненным кодом № 5, перечисленная выше.

Я искал и пробовал множество решений аналогичных проблем, перечисленных здесь, в стеке и на Github, но, похоже, ни одно из них не решает эту конкретную проблему. Я был бы глубоко признателен за любую помощь и мысли о том, что может произойти и как я мог бы решить эту проблему.

Я оставлю вам изображение журналов ошибок, предполагая, что это может вам помочь

введите описание изображения здесь

Спасибо за чтение.

Ответ №1:

Я скачал этот файл и еще один с этого сайта. Они оба, по-видимому, повреждены, оба не справляются с неполными данными дефляции.

Более того, там есть подписи MD5 для файлов, и то, что загружается, имеет подписи MD5, которые не совпадают.

Это не вызвано тем, что ftp-сервер выполняет преобразования в конце строки, поскольку длина файла в байтах точно совпадает с длиной на сервере. Также гистограмма значений байтов не показывает смещения.