gpt4 book ai didi

python - 从cassandra读取大数据到python dataframe(内存错误)

转载 作者:行者123 更新时间:2023-12-01 07:23:16 27 4
gpt4 key购买 nike

我正在尝试从 cassandra 读取 2048 维(1 百万条记录)的特征向量到 pandas 数据帧,每次都会崩溃。

我有 32 GB 内存,但我仍然无法将所有数据读入内存,每次我尝试将数据加载到内存中时,我的 python 程序都会崩溃。我的机器学习算法需要一次性将所有数据存入内存。(我的 csv 数据大小是 18GB。)

import pandas as pd

from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
from cassandra.query import dict_factory

auth_provider = PlainTextAuthProvider(username=CASSANDRA_USER, password=CASSANDRA_PASS)
cluster = Cluster(contact_points=[CASSANDRA_HOST], port=CASSANDRA_PORT,
auth_provider=auth_provider)

session = cluster.connect(CASSANDRA_DB)
session.row_factory = dict_factory

query = "SELECT * FROM Table"

df = pd.DataFrame()

for row in session.execute(query):
df = df.append(pd.DataFrame())

在 pandas dataframe 中读取数据是正确的方法吗?还有其他内存有效的方法来读取数据帧中的所有数据吗?

我考虑作为最后一次尝试的选项:1)降低特征向量维数2)增加内存

我无法将数据存储在 csv 或任何其他文件系统中,因为我要对 cassandra 中的数据执行一些其他操作。

程序每次都会崩溃,并显示“Killed”消息,这是由内存问题引起的。

最佳答案

从 SQLServer(使用 ODBC 连接)将数据读入 Pandas 数据帧时,我遇到了类似的问题。这似乎是 Pandas 方面的问题。与数据在原始数据库中占用的空间相比,数据帧占用的空间(在 RAM 中)超过 10 倍。

使用 H2O 数据帧效率更高(在我的例子中,它占用了 2-3 倍的 RAM 空间)。

另请参阅this邮政。如果您可以分块读取数据,那可能会有所帮助。

关于python - 从cassandra读取大数据到python dataframe(内存错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57579023/

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