当前位置: 首页 > 面试题库 >

如何将DataFrame写入postgres表?

范朗
2023-03-14
问题内容

DataFrame.to_sql
方法,但仅适用于mysql,sqlite和oracle数据库。我无法传递给此方法postgres连接或sqlalchemy引擎。


问题答案:

从pandas
0.14(2014年5月发行)开始,支持postgresql。该sql模块现在用于sqlalchemy支持不同的数据库风格。您可以为PostgreSQL数据库传递sqlalchemy引擎(请参阅docs)。例如:

from sqlalchemy import create_engine
engine = create_engine('postgresql://scott:tiger@localhost:5432/mydatabase')
df.to_sql('table_name', engine)

您是正确的,在不支持0.13.1版本的熊猫中,不支持postgresql。如果您需要使用旧版本的熊猫,请使用以下修补版本pandas.io.sql:https
:
//gist.github.com/jorisvandenbossche/10841234。
我是在前一段时间写的,所以不能完全保证它始终有效,但是基础应该在那里)。如果您将该文件放在工作目录中并导入,那么您应该能够做到(conPostgreSQL连接在哪里):

import sql  # the patched version (file is named sql.py)
sql.write_frame(df, 'table_name', con, flavor='postgresql')


 类似资料:
  • 我试图将写入并关注了其他几个博客,其中一个就是这个,但它不起作用。 但是,我可以成功地从读取数据为。此外,一些帖子使用了格式,其他帖子使用了格式。我不确定该用哪一个。;;和从这里开始。 守则如下: 这里有个例外: 在org.apache.hadoop.hbase.security.userprovider.instantiate(userprovider.java:122)在org.apache.

  • 如何将数据帧的索引写入自身? 例如: 我想写一个名为index的列,其中包含df的索引值:

  • 我试图编写一个流作业,它将数据流下沉到postgres表中。为了提供完整的信息,我的工作基于以下文章:https://tech.signavio.com/2017/postgres-flink-sink,这些文章建议使用JDBCoutputFormat。 所以我的问题是:我错过了什么吗?我应该将插入的行提交到某个地方吗? 向你致意,伊格内修斯

  • 我正在尝试使用以下代码将数据帧“df2”保存到文本文件中 代码:df2。写格式(“文本”)。模式(“覆盖”)。保存(“/tmp/hive/save\u text”) 错误: Py4JJavaError Traceback(最近一次调用) /databricks/spark/python/pyspark/sql/utils.py在deco(*a,**kw)62 try:--- /databricks

  • 问题内容: 我有一个pandas数据框,我想将其写入CSV文件。我正在使用以下方法: 并得到错误: 有什么方法可以轻松解决此问题(即我的数据框中有Unicode字符)吗?有没有一种方法可以使用例如“ to-tab”方法(我认为不存在)写入制表符分隔文件而不是CSV? 问题答案: 要用制表符分隔,可以使用参数: 要使用特定的编码(例如),请使用参数:

  • 问题内容: 我正在使用下面的代码将43列和大约2,000,000行的DataFrame写入SQL Server的表中: 不幸的是,尽管它确实适用于小型DataFrame,但它要么非常慢,要么对于大型DataFrame超时。关于如何优化它的任何提示? 我尝试设置 谢谢。 问题答案: 我们求助于使用azure-sqldb-spark库,而不是使用Spark的默认内置导出功能。这个库给你一个这是一个方法