Можно ли сравнить два файла паркета? - PullRequest
0 голосов
/ 28 апреля 2018

Мне не удалось найти инструмент или библиотеку с открытым исходным кодом, чтобы сравнить два файла паркета. Предполагая, что я не упустил очевидное, есть ли техническая причина для этого?

Что нужно учесть программисту перед написанием инструмента разметки паркета?

Я использую язык Python.

Спасибо.

1 Ответ

0 голосов
/ 01 мая 2018

Самая простая комбинация - использовать pandas вместе с pyarrow. Установив оба пакета, вы можете использовать https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_parquet.html для загрузки файла Apache Parquet в Pandas DataFrame, а затем использовать Pandas 'assert_frame_equal в двух результирующих DataFrames.

Обратите внимание, что при этом будут сравниваться два результирующих кадра данных, а не точное содержимое файлов Parquet. Поскольку не все типы паркета могут быть сопоставлены с Pandas 1: 1, такая информация, как если бы это была дата или DateTime, будет потеряна, но Pandas предлагает действительно хорошую инфраструктуру сравнения.

В качестве альтернативы, вы можете использовать Apache Arrow (пакет pyarrow, упомянутый выше) и считать данные в pyarrow.Table и проверить на равенство. Этот метод намного лучше сохраняет информацию о типе, но менее детален в отношении различий, если они есть:

import pyarrow.parquet as pq

table1 = pq.read_table('file1.parquet')
table2 = pq.read_table('file2.parquet')

assert table1.equals(table2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...