Pandas pyarrow Паркет не сохраняет тип данных на будущую дату год 3030 - PullRequest
0 голосов
/ 03 апреля 2020

Я использую комбинацию 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]. пожалуйста помогите

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