奇酷教育詳解:Python適合大數據量的處理嗎?
來源:
奇酷教育 發表于:
隨著大數據相關產業的火熱,關于使用哪種語言的討論也引起不少人的關注,其中最有爭議的還屬Java和Python,那么Python能處理數據庫中百
隨著大數據相關產業的火熱,關于使用哪種語言的討論也引起不少人的關注,其中最有爭議的還屬Java和Python,那么Python能處理數據庫中百萬行級的數據嗎?處理大規模數據時有那些常用的python庫,他們有什么優缺點?適用范圍如何?
需要澄清兩點之后才可以比較全面的看這個問題:
1. 百萬行級不算大數據量,以目前的互聯網應用來看,大數據量的起點是10億條以上。
2. 處理的具體含義,如果是數據載入和分發,用python是很高效的;如果是求一些常用的統計量和求一些基本算法的結果,python也有現成的高效的庫,C實現的和并行化的;如果是純粹自己寫的算法,沒有任何其他可借鑒的,什么庫也用不上,用純python寫是自討苦吃。
python的優勢不在于運行效率,而在于開發效率和高可維護性。針對特定的問題挑選合適的工具,本身也是一項技術能力。
其次,這也要看具體的應用場景,從本質上來說,我們把問題分解為兩個方面:
1、CPU密集型操作
即我們要計算的大數據,大部分時間都在做一些數據計算,比如求逆矩陣、向量相似度、在內存中分詞等等,這種情況對語言的高效性非常依賴,Python做此類工作的時候必然性能低下。
2、IO密集型操作
假如大數據涉及到頻繁的IO操作,比如從數據流中每次讀取一行,然后不做什么復雜的計算,頻繁的輸入輸出到文件系統,由于這些操作都是調用的操作系統接口,所以用什么語言已經不在重要了。
用Python來做整個流程的框架,然后核心的CPU密集操作部分調用C函數,這樣開發效率和性能都不錯,因此學習Python已經是想從事大數據事業不可或缺的一門技能,奇酷教育原創開發的Python課程不僅涵蓋Web前后端開發和網絡爬蟲技術,還包括獨有的數據分析和機器學習,前端、服務端一網打盡。可從事Web前端、Web服務端、服務器運維、網絡爬蟲、大數據分析、機器學習等多種熱門職業,百分百高薪就業!