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ù)還是輕松的。 接下來(lái)就是分布式計(jì)算。 按mapreduce的思路。數(shù)據(jù)盡量在本地處理。所以算法上要優(yōu)化。主要是分段。
不管怎么說(shuō)。這幾個(gè)方面所有的語(yǔ)言都是相同的。即使你用的是C語(yǔ)言也一樣要考慮到這些。大數(shù)據(jù)因?yàn)榱看?,算法也需要改進(jìn)。
對(duì)于不能改進(jìn)的算法(好象還沒(méi)有遇到)也只好用python接C的擴(kuò)展模塊了。 好在python與C有很好的接口。輕松就接上。
最近比較流行的方法是使用cython,一方面可以略略提高速度,另一方面與C有無(wú)縫的接口。
java在處理大數(shù)據(jù)方面速度與易用性略略占優(yōu)勢(shì)。C++也經(jīng)常會(huì)使用在核心算法上。語(yǔ)言本身都不是問(wèn)題。大部分時(shí)候大數(shù)據(jù)還是在處理算法本身而不是語(yǔ)言。
在原型階段python很方便,快速,靈活。所以大數(shù)據(jù)處理中python是幾種語(yǔ)言中最適合的。特別是早期探索階段。業(yè)務(wù)與算法經(jīng)常變更。到了后期基本上都是C++了。java比較適合工程化階段。
- 1 回答
- 0 關(guān)注
- 713 瀏覽
添加回答
舉報(bào)