【发布时间】:2023-03-29 19:04:01
【问题描述】:
我有一个 7GB 的 postgresql 表,我想将其读入 python 并进行一些分析。我不能为此使用 Pandas,因为它比我本地机器上的内存大。因此,我想先尝试将表格读入 Dask Dataframe,执行一些聚合并切换回 Pandas 进行后续分析。为此,我使用了以下代码行。
df = dd.read_sql_table('table_xyz', uri = "postgresql+psycopg2://user:pwd@remotehost/dbname", index_col = 'column_xyz', schema = 'private')
index_col 即“column_xyz”在数据库中被索引。这可行,但是当我执行聚合等操作时,需要很长时间(比如一个小时)才能返回结果。
avg = df.groupby("col1").col2.mean().compute()
我知道 Dask 不如 Pandas 快,所以当我在单台机器上而不是集群上工作时。我想知道我是否以正确的方式使用 Dask?如果不是使用 Python 对不适合内存的大型表执行分析的更快替代方法。
【问题讨论】:
标签: python pandas dask-dataframe