df 到表抛出错误 TypeError: __init__() 获得参数“schema”的多个值

问题描述 投票:0回答:3

我在 pandas 中有数据框:-purchase_df。我想将它转换为sql表,这样我就可以在pandas中执行sql查询。我试过这个方法

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

它抛出一个错误

TypeError: __init__() got multiple values for argument 'schema'

我的数据框名称为purchase_df,我需要对其执行sql查询。我需要像这样对此数据框执行 sql 查询....

engine.execute('''select * from purchase_df where condition''')
。为此,我需要将数据帧转换为 sql 表,因为在我们的服务器中没有安装 pandas_sql,只安装了 sql alchemy。

我在本地 pycharm 中运行了这段代码,它工作得很好,但是当我在 databrick 笔记本中尝试这个时,它显示了一个错误。即使一周前,它在 databrick 笔记本中也运行良好。帮我解决这个问题。

注意:- pandas 版本“1.3.4” 名称:SQLAlchemy 版本:2.0.0

python pandas dataframe sqlalchemy azure-databricks
3个回答
26
投票

SQLAlchemy 的版本 2.0.0(于 2023 年 1 月 26 日发布)似乎与早期版本的 不兼容。 我建议您升级您的pandas版本到最新版本(版本1.5.3)

pip install --upgrade pandas

或者:

conda upgrade pandas

13
投票

我在databricks中遇到了同样的问题,我不得不将sql alchemy降级为!pip install sqlalchemy==1.4.46


1
投票

我在 AWS 的 databricks 上遇到了完全相同的问题。我尝试了上面的解决方案,但对我来说没有任何作用。所以我安装了 sqlalchemy-databricks 库而不是 SQLAlchemy,一切都恢复了生机。 https://pypi.org/project/sqlalchemy-databricks/ 请先卸载/清除 SQLAlchemy,以免与 sqlalchemy-databricks 发生冲突。

© www.soinside.com 2019 - 2024. All rights reserved.