首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理大于内存的数据集?

如何处理大于内存的数据集?
EN

Stack Overflow用户
提问于 2016-03-28 19:17:55
回答 2查看 3.8K关注 0票数 7

用于数据处理的Dask包的文档说:

dataframes看起来和感觉就像熊猫数据,但是使用多线程操作比内存更大的数据集。

但在同一页的后面:

一只DataFrame是由几只记忆中的熊猫DataFrames组成的,它们沿着这个索引分离开来。

Dask是否顺序地从磁盘读取不同的DataFrame分区并执行计算以适应内存?它是否在需要时将一些分区溢出到磁盘?通常,Dask如何管理数据的内存<->磁盘IO以允许大于内存的数据分析?

我试着在10M MovieLens数据集上执行一些基本的计算(例如平均评分),而我的笔记本电脑(8GBRAM)开始交换数据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-28 19:39:37

Dask.dataframe懒散地加载数据,并试图通过数据集以一次线性扫描方式执行整个计算。令人惊讶的是,这通常是可行的。

智能转储到磁盘也是一个选项,它可以管理,特别是当需要洗牌时,但通常有解决办法。

票数 7
EN

Stack Overflow用户

发布于 2018-12-27 09:49:19

两年后,我恰巧来到了这个页面,现在有一个简单的选项可以限制每个工作人员使用内存。假设这是@MRocklin在这个线程停止活动后包含的。

代码语言:javascript
复制
$ dask-worker tcp://scheduler:port --memory-limit=auto  # total available RAM on the machine
$ dask-worker tcp://scheduler:port --memory-limit=4e9  # four gigabytes per worker process.

此特性称为Spill-to-disk员工策略,详细信息可在文档中找到这里

显然,额外的数据将溢出到下面命令所指定的目录中:

代码语言:javascript
复制
$ dask-worker tcp://scheduler:port --memory-limit 4e9 --local-directory /scratch 

该数据仍然可用,必要时将从磁盘中读取。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36269461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档