s********n 发帖数: 80 | 1 【 以下文字转载自 DataSciences 讨论区 】
发信人: seahearman (听海人), 信区: DataSciences
标 题: 如何用python读取大数据
发信站: BBS 未名空间站 (Tue Jan 27 22:03:06 2015, 美东)
在做一个小项目,数据是50M行,50列,文件大小是10GB。如果用pandas直接读的话,
一个是慢,另一个是动不动就 memory error。
但是我觉得10GB还算不上大数据,一般如何处理这样的问题呢?
的确可以分块读入,然后计算也分块算吗?比如我算个logistic regression,也能支
持分块算吗 |
b**********l 发帖数: 116 | 2 data.table?
【在 s********n 的大作中提到】 : 【 以下文字转载自 DataSciences 讨论区 】 : 发信人: seahearman (听海人), 信区: DataSciences : 标 题: 如何用python读取大数据 : 发信站: BBS 未名空间站 (Tue Jan 27 22:03:06 2015, 美东) : 在做一个小项目,数据是50M行,50列,文件大小是10GB。如果用pandas直接读的话, : 一个是慢,另一个是动不动就 memory error。 : 但是我觉得10GB还算不上大数据,一般如何处理这样的问题呢? : 的确可以分块读入,然后计算也分块算吗?比如我算个logistic regression,也能支 : 持分块算吗
|
S******y 发帖数: 1123 | 3 我觉的有两个思路
1. 可以先用Python processing by line(s)
挑你需要的或summarized/rolled-up的数据写出来
再用pandas 或R做model
2. 如果真需要learn from entire data set 干脆直接
上mahout 或者 spark |
s*********h 发帖数: 6288 | 4 要跑logistic可以stochastic gradient descent
【在 s********n 的大作中提到】 : 【 以下文字转载自 DataSciences 讨论区 】 : 发信人: seahearman (听海人), 信区: DataSciences : 标 题: 如何用python读取大数据 : 发信站: BBS 未名空间站 (Tue Jan 27 22:03:06 2015, 美东) : 在做一个小项目,数据是50M行,50列,文件大小是10GB。如果用pandas直接读的话, : 一个是慢,另一个是动不动就 memory error。 : 但是我觉得10GB还算不上大数据,一般如何处理这样的问题呢? : 的确可以分块读入,然后计算也分块算吗?比如我算个logistic regression,也能支 : 持分块算吗
|
y******g 发帖数: 26 | 5 首先,为什么会Memory Error?
很显然,你的文件有10G,你的内存有10G吗
那怎样用Python读取?
很简单,你肯定知道Python的函数有return功能,你进一步了解yield功能就可以了,
他可以让你一条一条数据的读取,读取完一个扔掉上一个
如何在这种情况使用Logistic Regression?
Logistic Regression是最典型的在线算法,他在任何一个软件里面都是数据一个一个
放进去算的,你现在需要编写一个LR |