Python適合大數據量的處理嗎?

已邀請:

偷晴

贊同來自:



python 能處理數據庫中百萬行級的數據嗎?處理大規模數據時有那些常用的python庫,他們有什麼優缺點?適用范圍如何?


來自知乎小夥伴王守崑的回答:


需要澄清兩點之後才可以比較全面的看這個問題:


1. 百萬行級不算大數據量,以目前的互聯網應用來看,大數據量的起點是10億條以上。


2. 處理的具體含義,如果是數據載入和分發,用python是很高效的;如果是求一些常用的統計量和求一些基本算法的結果,python也有現成的高效的庫,C實現的和並行化的;如果是純粹自己寫的算法,沒有任何其他可借鑒的,什麼庫也用不上,用純python寫是自討苦吃。


python的優勢不在於運行效率,而在於開發效率和高可維護性。針對特定的問題挑選合適的工具,本身也是一項技術能力。


來自知乎小夥伴郭寬的回答:


這要看具體的應用場景,從本質上來說,我們把問題分解為兩個方面:


1、CPU密集型操作

即我們要計算的大數據,大部分時間都在做一些數據計算,比如求逆矩陣、向量相似度、在內存中分詞等等,這種情況對語言的高效性非常依賴,Python做此類工作的時候必然性能低下。


2、IO密集型操作

假如大數據涉及到頻繁的IO操作,比如從數據流中每次讀取一行,然後不做什麼復雜的計算,頻繁的輸入輸出到文件系統,由於這些操作都是調用的操作系統接口,所以用什麼語言已經不在重要瞭。


結論

用Python來做整個流程的框架,然後核心的CPU密集操作部分調用C函數,這樣開發效率和性能都不錯,但缺點是對團隊的要求又高瞭(尤其涉及到Python+C的多線程操作)…所以…魚與熊掌不可兼得。如果一定要兼得,必須得自己牛逼。

要回復問題請先登錄註冊