Python 適合大數(shù)據(jù)量的處理嗎犀暑?

Python 適合大數(shù)據(jù)量的處理嗎?

python 能處理數(shù)據(jù)庫中百萬行級的數(shù)據(jù)嗎烁兰?

處理大規(guī)模數(shù)據(jù)時有那些常用的python庫耐亏,他們有什么優(yōu)缺點?適用范圍如何沪斟?

王守崑广辰,推薦系統(tǒng),數(shù)據(jù)挖掘

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

1. 百萬行級不算大數(shù)據(jù)量主之,以目前的互聯(lián)網應用來看择吊,大數(shù)據(jù)量的起點是10億條以上。

2. 處理的具體含義槽奕,如果是數(shù)據(jù)載入和分發(fā)几睛,用python是很高效的;如果是求一些常用的統(tǒng)計量和求一些基本算法的結果史翘,python也有現(xiàn)成的高效的庫枉长,C實現(xiàn)的和并行化的冀续;如果是純粹自己寫的算法,沒有任何其他可借鑒的必峰,什么庫也用不上洪唐,用純python寫是自討苦吃。

python的優(yōu)勢不在于運行效率吼蚁,而在于開發(fā)效率和高可維護性凭需。針對特定的問題挑選合適的工具,本身也是一項技術能力肝匆。

發(fā)布于 2011-04-215 條評論

Xiaoyu Ma粒蜈,大數(shù)據(jù)平臺碼農

我們公司每天處理數(shù)以P記的數(shù)據(jù),有個并行grep的平臺就是python做的旗国。當初大概是考慮快速成型而不是極限速度枯怖,但是事實證明現(xiàn)在也跑得杠杠的。大數(shù)據(jù)很多時候并不考慮太多每個節(jié)點上的極限速度能曾,當然速度是越快越好度硝,但是再更高層次做優(yōu)化(比如利用data locality減少傳輸,建索引快速join寿冕,做sample優(yōu)化partition蕊程,用bloomfilter快速測試等等),把python換成C并不能很大程度上提升效率驼唱。

死跑龍?zhí)椎?/a>藻茂,死跑龍?zhí)椎?a target="_blank" rel="nofollow">http://www.sobuhu.com

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

1辨赐、CPU密集型操作

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

2审孽、IO密集型操作

假如大數(shù)據(jù)涉及到頻繁的IO操作,比如從數(shù)據(jù)流中每次讀取一行浑娜,然后不做什么復雜的計算佑力,頻繁的輸入輸出到文件系統(tǒng),由于這些操作都是調用的操作系統(tǒng)接口筋遭,所以用什么語言已經不在重要了打颤。

結論

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

發(fā)布于 2012-12-241 條評論

我很喜歡用python撕蔼,用python處理數(shù)據(jù)是家常便飯,從事的工作涉及nlp秽誊,算法鲸沮,推薦,數(shù)據(jù)挖掘锅论,數(shù)據(jù)清洗讼溺,數(shù)據(jù)量級從幾十k到幾T不等,我來說說吧

百萬級別數(shù)據(jù)是小數(shù)據(jù)最易,python處理起來不成問題怒坯,python處理數(shù)據(jù)還是有些問題的

Python處理大數(shù)據(jù)的劣勢:

1. python線程有gil,通俗說就是多線程的時候只能在一個核上跑耘纱,浪費了多核服務器敬肚。在一種常見的場景下是要命的:并發(fā)單元之間有巨大的數(shù)據(jù)共享或者共用(例如大dict),多進程會導致內存吃緊束析,多線程則解決不了數(shù)據(jù)共享的問題艳馒,單獨的寫一個進程之間負責維護讀寫這個數(shù)據(jù)不僅效率不高而且麻煩

2. python執(zhí)行效率不高,在處理大數(shù)據(jù)的時候员寇,效率不高弄慰,這是真的,pypy(一個jit的python解釋器蝶锋,可以理解成腳本語言加速執(zhí)行的東西)能夠提高很大的速度陆爽,但是pypy不支持很多python經典的包,例如numpy(順便給pypy做做廣告扳缕,土豪可以捐贈一下PyPy - Call for donations

3. 絕大部分的大公司慌闭,用java處理大數(shù)據(jù)不管是環(huán)境也好,積累也好躯舔,都會好很多

Python處理數(shù)據(jù)的優(yōu)勢(不是處理大數(shù)據(jù)):

1. 異陈刻蓿快捷的開發(fā)速度,代碼量巨少

2. 豐富的數(shù)據(jù)處理包粥庄,不管正則也好丧失,html解析啦,xml解析啦惜互,用起來非常方便

3. 內部類型使用成本巨低布讹,不需要額外怎么操作(java琳拭,c++用個map都很費勁)

4. 公司中,很大量的數(shù)據(jù)處理工作工作是不需要面對非常大的數(shù)據(jù)的

5. 巨大的數(shù)據(jù)不是語言所能解決的描验,需要處理數(shù)據(jù)的框架(hadoop白嘁, mpi。挠乳。权薯。。)雖然小眾睡扬,但是python還是有處理大數(shù)據(jù)的框架的盟蚣,或者一些框架也支持python

6. 編碼問題處理起來太太太方便了

綜上所述:

1. python可以處理大數(shù)據(jù)

2. python處理大數(shù)據(jù)不一定是最優(yōu)的選擇

3. python和其他語言(公司主推的方式)并行使用是非常不錯的選擇

4. 因為開發(fā)速度,你如果經常處理數(shù)據(jù)卖怜,而且喜歡linux終端屎开,而且經常處理不大的數(shù)據(jù)(100m一下),最好還是學一下python

python數(shù)據(jù)處理的包:

1. 自帶正則包马靠, 文本處理足夠了

2. cElementTree, lxml 默認的xml速度在數(shù)據(jù)量過大的情況下不足

3. beautifulsoup 處理html

4. hadoop(可以用python) 并行處理奄抽,支持python寫的map reduce,足夠了甩鳄, 順便說一下阿里巴巴的odps逞度,和hadoop一樣的東西,支持python寫的udf妙啃,嵌入到sql語句中

5. numpy, scipy, scikit-learn 數(shù)值計算档泽,數(shù)據(jù)挖掘

6. dpark(搬樓上的答案)類似hadoop一樣的東西

1,2揖赴,3馆匿,5是處理文本數(shù)據(jù)的利器(python不就處理文本數(shù)據(jù)方便嘛),4燥滑,6是并行計算的框架(大數(shù)據(jù)處理的效率在于良好的分布計算邏輯渐北,而不是什么語言)

暫時就這些,最好說一個方向铭拧,否則不知道處理什么樣的數(shù)據(jù)也不好推薦包赃蛛,所以沒有頭緒從哪里開始介紹這些包

編輯于 2014-09-161 條評論

kinglon信息安全

使用python可以搀菩,但對速度要求較高的關鍵模塊焊虏,還是要用C重寫。

發(fā)布于 2011-04-21添加評論

陳木生秕磷,人生苦短我用python:)

王子健王楓炼团、李小壞等人贊同

大量數(shù)據(jù)處理的瓶頸是在IO澎嚣,而不是在哪個語言疏尿。語言選擇真的是要看個人口味、品味易桃。

發(fā)布于 2012-06-131 條評論

可以看看 Douban 的DPark

發(fā)布于 2013-11-231 條評論

Vitas Liu褥琐,搜索研發(fā)工程師

碼代碼比程序時間復雜度更cost

發(fā)布于 2014-09-15添加評論

Levi.Wang是的晤郑,我喜歡帥氣的女子亥紙

Hadoop在大數(shù)據(jù)處理領域應用廣泛敌呈,而它官方默認的程序示例是用java寫的,其實大數(shù)據(jù)處理的今天造寝,語言的快慢已經不足以影響到速度了. java跟python的速度跟C沒有可比性磕洪,但他們的高開發(fā)效率和越來越好的解釋器會讓他們在數(shù)據(jù)處理領域大放異彩.

發(fā)布于 2013-05-28添加評論

牟小峰數(shù)據(jù)挖掘

什么叫處理诫龙? 100萬的數(shù)據(jù)析显,如果只是傳輸?shù)脑挘琾ython和c/c++差不多签赃;如果用來計算話題模型的話谷异,python的速度為c/c++的1/10,內存消耗為10倍多锦聊。

發(fā)布于 2012-12-25添加評論

zxskzxsk h歹嘹,太低調了也不好……

使用Python調用vtk庫對100萬行的數(shù)據(jù)進行可視化,結果內存爆滿孔庭,使用C++就沒有問題尺上,Python很占內存,不知道為什么……

發(fā)布于 2013-01-041 條評論

yishen chen史飞,我是

很多python庫的實現(xiàn)都是用其他語言寫的(C比較多)尖昏,只是用Python做了個包裝而已。庫的效率本身不低构资。

編輯于 2013-11-21添加評論

Xiang Zhang

Python調用vtk庫對面片數(shù)量我測試過是沒有限制的好像抽诉,你所說的100萬多數(shù)據(jù)是不是都是存入了python的list中,list是有上限限制的吐绵。如果不存入list迹淌,應該是沒有渲染上限的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末己单,一起剝皮案震驚了整個濱河市唉窃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纹笼,老刑警劉巖纹份,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡蔓涧,警方通過查閱死者的電腦和手機件已,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來元暴,“玉大人篷扩,你說我怎么就攤上這事≤哉担” “怎么了鉴未?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鸠姨。 經常有香客問我铜秆,道長,這世上最難降的妖魔是什么享怀? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任羽峰,我火速辦了婚禮,結果婚禮上添瓷,老公的妹妹穿的比我還像新娘梅屉。我一直安慰自己,他們只是感情好鳞贷,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布坯汤。 她就那樣靜靜地躺著,像睡著了一般搀愧。 火紅的嫁衣襯著肌膚如雪惰聂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天咱筛,我揣著相機與錄音搓幌,去河邊找鬼。 笑死迅箩,一個胖子當著我的面吹牛仔蝌,可吹牛的內容都是我干的。 我是一名探鬼主播火脉,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼堂污,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了龄砰?” 一聲冷哼從身側響起盟猖,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤讨衣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后扒披,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體值依,經...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年碟案,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颇蜡。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡价说,死狀恐怖,靈堂內的尸體忽然破棺而出风秤,到底是詐尸還是另有隱情鳖目,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布缤弦,位于F島的核電站领迈,受9級特大地震影響,放射性物質發(fā)生泄漏碍沐。R本人自食惡果不足惜狸捅,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望累提。 院中可真熱鬧尘喝,春花似錦、人聲如沸斋陪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽无虚。三九已至缔赠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間友题,已是汗流浹背嗤堰。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留咆爽,地道東北人梁棠。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像斗埂,于是被迫代替她去往敵國和親符糊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內容