Я использую комбинацию pandas -pyarrow для сохранения данных в файле паркета. у одного из моих столбцов есть даты в будущем, такие как 3000-12-31 00: 00: 00.
df_ora = pd.read_sql("SELECT date_column FROM my_table", con=tconn)
df_ora.to_parquet(filename, engine='pyarrow', compression='gzip')
df_parquet = pd.read_parquet(filename, engine='pyarrow')
if df_ora.equals(df_parquet):
print ("match")
else:
print("no match")
dataTypeSeries = df_ora.dtypes
print('\nData type of column of df_ora :')
print(dataTypeSeries)
dataTypeSeries = df_parquet.dtypes
print('\nData type ofcolumn of df_parquet :')
print(dataTypeSeries)
print(assert_frame_equal(df_ora, df_parquet, check_dtype=False))
, и это дает вывод:
no match
Data type of column of df_ora :
date_column object
dtype: object
Data type of column of df_parquet :
date_column datetime64[ns]
dtype: object
DataFrame.iloc[:, 0] (column name="date_column") values are different (100.0 %)
[left]: [3000-12-31 00:00:00, 3000-12-31 00:00:00, ...]
[right]: [1831-11-22T00:50:52.580896768, 1831-11-22T00:50:52.580896768, ...]
, почему это конфликт здесь: даты интерпретируются как объект при чтении из базы данных и datetime64 [нс] при чтении из файла паркета. хотите узнать причину того же и нужно сопоставить эти даты, используя df.equals () в качестве объекта или datetime64 [ns]. пожалуйста помогите