You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas DataFrame转SQL表报错TypeError: schema参数重复赋值求助

解决Pandas to_sql在Databricks中报TypeError: init() got multiple values for argument 'schema'的问题

问题原因

报错源于Pandas 1.3.4与SQLAlchemy 2.0.0的兼容性冲突:

  • Pandas 1.3.4发布时SQLAlchemy 2.0尚未推出,其to_sql方法的参数逻辑与SQLAlchemy 2.0的接口不匹配。
  • Databricks环境中底层数据库连接会自动传递schema参数,而旧版Pandas的to_sql调用SQLAlchemy 2.0接口时,会触发参数重复传递的错误;本地运行正常是因为你的本地环境使用的是SQLAlchemy 1.x版本。

解决方案

以下三种方案任选其一:

1. 降级SQLAlchemy到1.x兼容版本

将SQLAlchemy降级到Pandas 1.3.4支持的1.x稳定版(推荐1.4.49,为1.x系列最后一个稳定版本):

pip install sqlalchemy==1.4.49

2. 显式指定schema参数为None

在to_sql调用中手动添加schema=None,避免参数重复传递:

purchase_df.to_sql('purchase_df', con=engine, if_exists='replace', index=False, schema=None)

3. 升级Pandas到支持SQLAlchemy 2.0的版本

Pandas从1.5.0版本开始正式支持SQLAlchemy 2.0,若环境允许,升级Pandas:

pip install pandas>=1.5.0

验证

修改后重新运行to_sql代码,即可正常将DataFrame写入SQL表,之后就能通过engine.execute执行SQL查询。

内容的提问来源于stack exchange,提问作者Arpan Ghimire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 22:55:55