首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何将数据从dataframe(在python中)插入到greenplum表?

我如何将数据从dataframe(在python中)插入到greenplum表?
EN

Stack Overflow用户
提问于 2017-11-22 08:09:54
回答 1查看 2.5K关注 0票数 3

问题陈述:

我有多个csv文件。我正在使用python清洗它们,并使用bcp将它们插入到SQL server。现在,我想把它插入到Greenplum中,而不是Server中。请建议一种直接从python数据框架到greenplum表的批量插入格林梅利表的方法。

解决方案:(我能想到的)

我可以认为是CSV-> Dataframe -> Cleainig -> Dataframe -> CSV ->,然后使用Gpload进行批量装载。并将其集成到Shell脚本中以实现自动化。有没有人有很好的解决办法。

在直接将数据从数据加载到gp表:时发出问题

当gpload请求文件路径时。我能给你递一份不同的或数据吗?有什么方法可以将数据装载到格林梅中吗?我不想从dataframe创建一个csv或txt文件,然后将其加载到格林梅利。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-29 01:28:43

我会使用psycopg2和io库来完成这个任务。io是内置的,您可以使用pip (或conda)安装psycopg2。

基本上,您可以以csv格式将数据写入字符串缓冲区(“内存文件”)。然后使用copy_from 2的函数将其批量加载/复制到您的表中。

这应该会让你开始:

代码语言:javascript
复制
import io
import pandas
import psycopg2

# Write your dataframe to memory as csv
csv_io = io.StringIO()
dataframe.to_csv(csv_io, sep='\t', header=False, index=False)
csv_io.seek(0)


# Connect to the GreenPlum database.
greenplum = psycopg2.connect(host='host', database='database', user='user', password='password')
gp_cursor = greenplum.cursor()

# Copy the data from the buffer to the table.
gp_cursor.copy_from(csv_io, 'db.table')
greenplum.commit()

# Close the GreenPlum cursor and connection.
gp_cursor.close()
greenplum.close()
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47429651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档