首页 > 解决方案 > 有没有办法在不创建 csv 文件的情况下将大表从 sql 加载到 pandas?

问题描述

我正在使用安装了 64GB 内存的服务器。我在数据库上有一个大表,它有 650 万行和 7 列。我想使用 read_sql() 或 read_sql_query() 方法将它从数据库读取到 pandas。我使用了 sqlalchemy create_engine 并成功设置了连接。

cstr = 'oracle://{user}:{password}@{sid}'.format(
    user=user,
    password=password,
    sid=sid
)

engine =  create_engine(
    cstr,
    convert_unicode=False,
    pool_recycle=10,
    pool_size=50,
    echo=True
)

query = 'Select * From Table'

result = engine.execute(query)

df = pd.read_sql_query(query, engine)

一切都很好,直到上df = pd.read_sql_query(query, engine)线。当我运行这一行时,Jupyter Lab 向我抛出错误“内核似乎已经死机。它将自动重新启动”

我不想迭代地创建几个 csv 文件。因为我不想为 csv 文件分配那么多空间。只想读取整个数据一次。但我不确定这是否可能?

标签: pythonpandasplsqlsqlalchemyloaddata

解决方案


推荐阅读