首页 > 解决方案 > 使用 from_pandas 从 oracle 数据库到 vaex 的 5000 万条记录

问题描述

下面的代码来自 vaex 文档:

pandas_df = pd.read_sql_query('SELECT * FROM MYTABLE', con=engine)
df = vaex.from_pandas(pandas_df, copy_index=False)

描述

我的数据多于 RAM。但是,当我使用上面的代码时,它会尝试提取 panda 数据框中的所有数据。所以为了解决这个问题,我使用了提供生成器的 chunksize 属性。

要再次从生成器转换为 pandas 数据帧,它需要内存。下面是我试过的代码。

import vaex
df = pd.read_sql_query('select * from "user"."table"', conn, chunksize=1000000)
chunk_list = []
for i in df:
    chunk_list.append(i)
    data = pd.concat(chunk_list)
    df2 = vaex.from_pandas(data)
    alldat=df2.concat(df2)

请帮我解决这个问题。

标签: pythonpandasvaex

解决方案


推荐阅读