1 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊
有些辦法。比如使用array, numpy.array。 主要的思路是節(jié)約內(nèi)存的使用,同時(shí)提高數(shù)據(jù)查詢的效率。
如果能夠注意這些內(nèi)容,處理幾個(gè)GB的數(shù)據(jù)還是輕松的。 接下來就是分布式計(jì)算。 按mapreduce的思路。數(shù)據(jù)盡量在本地處理。所以算法上要優(yōu)化。主要是分段。
不管怎么說。這幾個(gè)方面所有的語言都是相同的。即使你用的是C語言也一樣要考慮到這些。大數(shù)據(jù)因?yàn)榱看螅惴ㄒ残枰倪M(jìn)。
對于不能改進(jìn)的算法(好象還沒有遇到)也只好用python接C的擴(kuò)展模塊了。 好在python與C有很好的接口。輕松就接上。
最近比較流行的方法是使用cython,一方面可以略略提高速度,另一方面與C有無縫的接口。
java在處理大數(shù)據(jù)方面速度與易用性略略占優(yōu)勢。C++也經(jīng)常會使用在核心算法上。語言本身都不是問題。大部分時(shí)候大數(shù)據(jù)還是在處理算法本身而不是語言。
在原型階段python很方便,快速,靈活。所以大數(shù)據(jù)處理中python是幾種語言中最適合的。特別是早期探索階段。業(yè)務(wù)與算法經(jīng)常變更。到了后期基本上都是C++了。java比較適合工程化階段。
- 1 回答
- 0 關(guān)注
- 722 瀏覽
添加回答
舉報(bào)