当我使用to_sql将数据帧上传到exasol并指定if_exists ='replace'时,默认的字符串数据类型为'text',Exasol不支持。我认为Varchar是正确的类型。如何使to_sql使用Varchar而不是Text创建表?
答案 0 :(得分:1)
我知道这不是您要的100%,但我建议使用pyexasol软件包在Pandas和Exasol之间进行通信。删除和上传之后的工作方式就像
import pyexasol
import _config as config
# Connect with compression enabled
C = pyexasol.connect(dsn=config.dsn, user=config.user,
password=config.password, schema=config.schema,
compression=True)
C.execute('TRUNCATE TABLE users_copy')
# Import from pandas DataFrame into Exasol table
C.import_from_pandas(pd, 'users_copy')
stmt = C.last_statement()
print(f'IMPORTED {stmt.rowcount()} rows in
{stmt.execution_time}s')
C.close()
没有出现varchar问题。