gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 22:22:51 25 4
gpt4 key购买 nike

问题陈述:

我有多个 csv 文件。我正在使用 python 清理它们并使用 bcp 将它们插入 SQL Server。现在我想将其插入 Greenplum 而不是 SQL Server。请建议一种直接从 python 数据框批量插入 greenplum 表到 GreenPlum 表的方法。

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

我能想到的方式是 CSV-> Dataframe -> Cleainig -> Dataframe -> CSV -> 然后使用 Gpload 进行批量加载。并将其集成到Shell脚本中实现自动化。有没有人有好的解决方案。

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

作为 gpload 请求文件路径。我可以将变量或数据框传递给它吗?有什么方法可以批量加载到 greenplum 中吗?我不想从数据帧创建 csv 或 txt 文件,然后将其加载到 greenplum。

最佳答案

我会使用 psycopg2 和 io 库来执行此操作。 io 是内置的,您可以使用 pip(或 conda)安装 psycopg2。

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

这应该让你开始:

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()

关于python - 我如何将数据从数据框(在 python 中)插入到 greenplum 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47429651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com