Как найти, где отличаются две схемы набора данных pyarrow? - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть две схемы набора данных pyarrow, и по какой-то причине они отличаются, даже если они должны быть одинаковыми (я предполагаю, что при хранении одного из файлов паркета для одного раздела определенный столбец был приведен к другому типу данных, но у меня есть Понятия не имею, что это).

Теперь я знаю, как сравнить, являются ли две схемы одинаковыми. Я могу сделать это так:

import pandas as pd
import numpy as np
import pyarrow as pa

df1 = pd.DataFrame({'col1': np.zeros(10), 'col2':np.random.rand(10)})
df2 = pd.DataFrame({'col1':np.ones(10), 'col2': np.zeros(10)})

schema_1 = pa.Schema.from_pandas(df1)
schema_2 = pa.Schema.from_pandas(df2)

schema_1.equals(schema_2)

df3 = df2.copy()
df3['col2'] = df3['col2'].astype('int')

schema_3 = pa.Schema.from_pandas(df3)
print(schema_1.equals(schema_2), schema_1.equals(schema_3))

Но как мне узнать, где они отличаются? (Визуальный осмотр не в счет, я кратко попробовал и не увидел различий в более чем 500 столбцах)

...