df to table throw error TypeError: __init__() got multiple values for argument 'schema'
我在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 notebook中尝试这个代码时,却显示了一个错误。尽管一周前它在databrick notebook中也运行良好。请帮助我解决这个问题。
注:- pandas版本'1.3.4'
名称:SQLAlchemy
版本:2.0.0
似乎SQLAlchemy的版本2.0.0(2023年1月26日发布)与pandas的早期版本不兼容。 我建议你升级你的pandas版本到最新的(版本1.5.3),用.NET Framework 2.0升级到1.5.3。
pip install --upgrade pandas
或者说:
conda upgrade pandas
!pip install --upgrade pandas
解决了Azure Databricks环境中的问题。它警告说" Can't uninstall 'pandas'。没有发现可以卸载的文件。",但是当执行!pip freeze
时,新的版本(1.5.3)被列出,并且" multiple values for argument 'schema' "错误消失了。
- Vinícius Queiroz 2023-01-31
我在databricks中也遇到了同样的问题,我不得不将sql alchemy降级为!!! pip install sqlalchemy==1.4.46。
我在AWS的databricks上遇到了完全相同的问题。我尝试了上面的解决方案,但没有一个方案对我有效。所以我安装了sqlalchemy-databricks库,而不是SQLAlchemy,一切都恢复了正常。https://pypi.org/project/sqlalchemy-databricks/ 请先卸载/清除SQLAlchemy,以免与sqlalchemy-databricks发生冲突。