我对SQL世界有点陌生,但我遵循了一个名为Optimizing pandas.read_sql for Postgres的教程。问题是,我正在处理一个大数据集,类似于教程中的示例,我需要一种更快的方法来执行查询并将其转换为数据帧。在那里,他们使用这个功能:
def read_sql_tmpfile(query, db_engine):
with tempfile.TemporaryFile() as tmpfile:
copy_sql = "COPY ({query}) TO STDOUT WITH CSV {head}".format(
query=query, head="HEADER"
)
conn = db_engine.raw_connection()
cur = conn.cursor()
cur.copy_expert(copy_sql, tmpfile) # I want to replicate this
tmpfile.seek(0)
df = pandas.read_csv(tmpfile)
return df
我试着复制它,就像这样:
def read_sql_tmpfile(query, connection):
with tempfile.TemporaryFile() as tmpfile:
copy_sql = "COPY ({query}) TO STDOUT WITH CSV {head}".format(
query=query, head="HEADER"
)
cur = connection.cursor()
cur.copy_expert(copy_sql, tmpfile)
tmpfile.seek(0)
df = pandas.read_csv(tmpfile)
return df
问题是,cursor.copy_expert
来自PostgreSQL的psycopg2
库,我找不到用pymysql
做同样的事情的方法。有什么办法吗?我该怎么办?谢谢
目前没有回答
相关问题 更多 >
编程相关推荐