如何在python中定义写入AWS Redshift Postgres DB的数据的列类型



我有一个pandas数据帧,它看起来像这样:

A       B                       C         D
80.00   2020-03-07 19:36:50     testing   approved
80.00   2020-03-07 19:46:50     testing   approved

我已经成功地将这个熊猫数据帧写入数据库,如下所示:

conn = create_engine('postgresql://username:password@redshift-blablabla.eu-west-1.redshift.amazonaws.com:5439/database_name')
dataframe.to_sql('table_name', conn,index=False, if_exists='replace')

当我尝试使用此表作为源来可视化Superset中的数据时,我注意到所有内容都存储为varchar,并且我不能使用列B作为日期戳来序列化数据。

写入数据库时如何定义列类型?日期戳应该只有日期而没有小时才能作为日期戳有效吗?

谢谢你的帮助。

to_sql有一个参数dtype,通过该参数,您可以将单个列的数据类型作为字典提供,或将所有列同时作为标量提供。你试过了吗?

dtype:dict或标量,可选

指定列的数据类型。如果使用字典,键应该是列名,值应该是sqlite3遗留模式的SQLAlchemy类型或字符串。如果提供了标量,它将应用于所有列。

最新更新