如今,數(shù)據(jù)處理不再無足輕重,并且對精密分析和強大又實時處理" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)絡營銷 > 哪些編程語言適合用于大數(shù)據(jù)集中處理?

哪些編程語言適合用于大數(shù)據(jù)集中處理?

時間:2022-05-25 20:12:01 | 來源:網(wǎng)絡營銷

時間:2022-05-25 20:12:01 來源:網(wǎng)絡營銷

隨著互聯(lián)網(wǎng)的高速發(fā)展,大數(shù)據(jù)的浪潮仍在繼續(xù),它幾乎滲透到了所有的行業(yè),信息像洪水一樣地席卷企業(yè),使得軟件越發(fā)龐然大物,比如Excel看上去就變得越來越笨拙。

如今,數(shù)據(jù)處理不再無足輕重,并且對精密分析和強大又實時處理的需要變得前所未有的巨大。

那么,在巨大的數(shù)據(jù)集中進行篩選的最好工具是什么?通過和數(shù)據(jù)駭客的交流,我們知道了他們用于硬核數(shù)據(jù)分析最喜歡的語言和工具包。

1、R語言

在這些語言名單中,如果R語言排第二,那就沒其他能排第一。自1997年以來,作為昂貴的統(tǒng)計軟件,如Matlab和SAS的免費替代品,它漸漸風靡全球。

在過去的幾年時間中,R語言已經(jīng)成為了數(shù)據(jù)科學的寵兒——數(shù)據(jù)科學現(xiàn)在不僅僅在書呆子一樣的統(tǒng)計學家中人盡皆知,而且也為華爾街交易員,生物學家,和硅谷開發(fā)者所家喻戶曉。各種行業(yè)的公司,例如Google,F(xiàn)acebook,美國銀行,以及紐約時報都使用R語言,R語言正在商業(yè)用途上持續(xù)蔓延和擴散。

R語言有著簡單而明顯的吸引力,使用R語言,只需要短短的幾行代碼,你就可以在復雜的數(shù)據(jù)集中篩選,通過先進的建模函數(shù)處理數(shù)據(jù),以及創(chuàng)建平整的圖形來代表數(shù)字。它被比喻為是Excel的一個極度活躍版本。

R語言最偉大的資本是已圍繞它開發(fā)的充滿活力的生態(tài)系統(tǒng):R語言社區(qū)總是在不斷地添加新的軟件包和功能到它已經(jīng)相當豐富的功能集中。據(jù)估計,超過200萬的人使用R語言,并且最近的一次投票表明,R語言是迄今為止在科學數(shù)據(jù)中最流行的語言,被61%的受訪者使用(其次是Python)。

此外,它的身影也漸漸出現(xiàn)在了華爾街。以前,銀行分析師會全神貫注于Excel文件直到深夜,但現(xiàn)在R語言被越來越多地用于金融建模R,特別是作為一種可視化工具,Niall O’Connor,美國銀行的副總裁如是說。“R語言使我們平凡的表格與眾不同”他說。

R語言的日漸成熟,使得它成為了數(shù)據(jù)建模的首選語言,雖然當企業(yè)需要生產(chǎn)大型產(chǎn)品時它的能力會變得有限,也有的人說這是因為它的地位正在被其他語言篡奪。

“R更適合于做一個草圖和大概,而不是詳細的構(gòu)建”Michael Driscoll,Metamarkets的首席執(zhí)行官說。“你不會在谷歌的網(wǎng)頁排名以及Facebook的朋友推薦算法的核心找到R語言。工程師會用R語言做原型,然后移交給用Java或Python寫的模型。”

話說回來,早在2010年,Paul Butler就以R語言打造了全球的Facebook地圖而著名,這證明了該語言豐富的可視化功能。盡管他現(xiàn)在已經(jīng)不像以前那樣頻繁地使用R語言了。

“R正在一點點地過時,因為它的緩慢和處理大型數(shù)據(jù)集的笨重,”Butler說。

那么,他使用什么代替呢?請繼續(xù)閱往下看。

2、Rython

如果說R語言是一個神經(jīng)質(zhì)又可愛的高手,那么Python是它隨和又靈活的表兄弟。作為一種結(jié)合了R語言快速對復雜數(shù)據(jù)進行挖掘的能力并構(gòu)建產(chǎn)品的更實用語言,Python迅速得到了主流的吸引力。

Python是直觀的,并且比R語言更易于學習,以及它的生態(tài)系統(tǒng)近年來急劇增長,使得它更能夠用于先前為R語言保留的統(tǒng)計分析(具體可查看億企邦《Python語言代碼的性能優(yōu)化方法大全》的相關(guān)介紹)。

“這是這個行業(yè)的進步。在過去的兩年時間中,從R語言到Python已經(jīng)發(fā)生了非常明顯的轉(zhuǎn)變,”Butler說。

在數(shù)據(jù)處理中,在規(guī)模和復雜性之間往往會有一個權(quán)衡,于是Python成為了一種折中方案。IPython notebook和NumPy可以用作輕便工作的一種暫存器,而Python可以作為中等規(guī)模數(shù)據(jù)處理的強大工具。豐富的數(shù)據(jù)社區(qū),也是Python的優(yōu)勢,因為可以提供了大量的工具包和功能。

美國銀行使用Python在銀行的基礎(chǔ)架構(gòu)中構(gòu)建新的產(chǎn)品和接口,同時也用Python處理財務數(shù)據(jù)。“Python廣泛而靈活,因此人們趨之若鶩”O’Donnell說。

不過,它并非最高性能的語言,只能偶爾用于大規(guī)模的核心基礎(chǔ)設(shè)施,Driscoll這樣說道。

3、Julia

雖然當前的數(shù)據(jù)科學絕大多數(shù)是通過R語言,Python,Java,MatLab和SAS執(zhí)行的,但依然有其他的語言存活于夾縫中,Julia就是值得一看的后起之秀。

業(yè)界普遍認為Julia過于晦澀難懂,但數(shù)據(jù)駭客在談到它取代R和Python的潛力時會不由得眉飛色舞,Julia是一種高層次的,極度快速的表達性語言。它比R語言快,比Python更可擴展,且相當簡單易學。

“它正在一步步成長。最終,使用Julia,你就能夠辦到任何用R和Python可以做到的事情,”Butler說。

但是至今為止,年輕人對Julia依然猶豫不前,Julia數(shù)據(jù)社區(qū)還處于早期階段,要能夠和R語言和Python競爭,它還需要添加更多的軟件包和工具。

“它還很年輕,但它正在掀起浪潮并且非常有前途,”Driscoll說。

4、JAVA

Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進行復雜的編程。

Java具有簡單性、面向?qū)ο?、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態(tài)性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應用程序等。

Java,以及基于Java的框架,被發(fā)現(xiàn)儼然成為了硅谷最大的那些高科技公司的骨骼支架。“如果你去看Twitter,LinkedIn和Facebook,那么你會發(fā)現(xiàn),Java是它們所有數(shù)據(jù)工程基礎(chǔ)設(shè)施的基礎(chǔ)語言”Driscoll說。

Java不能提供R和Python同樣質(zhì)量的可視化,并且它并非統(tǒng)計建模的最佳選擇。但是,如果你移動到過去的原型制作并需要建立大型系統(tǒng),那么Java往往是你的最佳選擇(具體可查看億企邦《關(guān)于C語言、C++、Java和Python這4種程序開發(fā)語言的評價》的相關(guān)介紹)。

5、Hadoop和Hive

一群基于Java的工具被開發(fā)出來以滿足數(shù)據(jù)處理的巨大需求。

Hadoop作為首選的基于Java的框架用于批處理數(shù)據(jù)已經(jīng)點燃了大家的熱情。Hadoop比其他一些處理工具慢,但它出奇的準確,因此被廣泛用于后端分析。它和Hive——一個基于查詢并且運行在頂部的框架可以很好地結(jié)對工作。

6、Scala

Scala是一門多范式的編程語言,一種類似java的編程語言,設(shè)計初衷是實現(xiàn)可伸縮的語言、并集成面向?qū)ο缶幊毯秃瘮?shù)式編程的各種特性。

Scala還包含了若干函數(shù)式語言的關(guān)鍵概念,包括高階函數(shù)(Higher-Order Function)、局部套用(Currying)、嵌套函數(shù)(Nested Function)、序列解讀(Sequence Comprehensions)等等。

Scala是另一種基于Java的語言,并且和Java相同的是,它正日益成為大規(guī)模機器學習,或構(gòu)建高層次算法的工具。它富有表現(xiàn)力,并且還能夠構(gòu)建健壯的系統(tǒng)。

“Java就像是建造時的鋼鐵,而Scala則像黏土,因為你之后可以將之放入窯內(nèi)轉(zhuǎn)變成鋼鐵,”Driscoll說。

7、Kafka和Storm

那么,當你需要快速實時的分析時又該怎么辦呢?Kafka會成為你的好朋友,它大概5年前就已經(jīng)出現(xiàn)了,但是直到最近才成為流處理的流行框架。

Kafka,誕生于LinkedIn內(nèi)部,是一個超快速的查詢消息系統(tǒng)。Kafka的缺點?好吧,它太快了。在實時操作時會導致自身出錯,并且偶爾地會遺漏東西。

“有精度和速度之間有一個權(quán)衡,”Driscoll說, “因此,硅谷所有的大型高科技公司都會使用兩條管道:Kafka或Storm用于實時處理,然后Hadoop用于批處理系統(tǒng),此時雖然是緩慢的但超級準確。”

Storm是用Scala編寫的另一個框架,它在硅谷中因為流處理而受到了大量的青睞。它被Twitter納入其中,勿庸置疑的,這樣一來,Twitter就能在快速事件處理中得到巨大的裨益。

8、MatLab

MatLab一直以來長盛不衰,盡管它要價不菲,但它仍然被廣泛使用在一些非常特殊的領(lǐng)域:研究密集型機器學習,信號處理,圖像識別。

MATLAB是matrix&laboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室)。是由美國mathworks公司發(fā)布的主要面對科學計算、可視化以及交互式程序設(shè)計的高科技計算環(huán)境。它將數(shù)值分析、矩陣計算、科學數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強大功能集成在一個易于使用的視窗環(huán)境中,為科學研究、工程設(shè)計以及必須進行有效數(shù)值計算的眾多科學領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計語言(如C、Fortran)的編輯模式,代表了當今國際科學計算軟件的先進水平。

MATLAB和Mathematica、Maple并稱為三大數(shù)學軟件。它在數(shù)學類科技應用軟件中在數(shù)值計算方面首屈一指。MATLAB可以進行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設(shè)計、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計與分析等領(lǐng)域。

MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完成相同的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點,使MATLAB成為一個強大的數(shù)學軟件。在新的版本中也加入了對C,F(xiàn)ORTRAN,C++,JAVA的支持。

9、Octave

Octave和MatLab非常相似,但它是免費的。不過,它在學術(shù)性信號處理圈子之外很少見到。

Octave是一種高層解釋類編程語言,旨在解決線性和非線性的數(shù)值計算問題。Octave為GNU項目下的開源軟件,早期版本為命令行交互方式,4.0.0版本發(fā)布基于QT編寫的GUI交互界面。

Octave語法與Matlab語法非常接近,可以很容易的將matlab程序移植到Octave,同時與C++,QT等接口較Matlab更加方便。

Octave是一種科學計算軟件,它提供了方便的互動命令列接口來解決線性與非線性的數(shù)值運算問題,并可將計算結(jié)果可視化,與高價的商業(yè)軟體MATLAB語法幾乎兼容。

10、GO

Go是一種編譯型語言,它結(jié)合了解釋型語言的游刃有余,動態(tài)類型語言的開發(fā)效率,以及靜態(tài)類型的安全性。它也打算成為現(xiàn)代的,支持網(wǎng)絡與多核計算的語言。要滿足這些目標,需要解決一些語言上的問題:一個富有表達能力但輕量級的類型系統(tǒng),并發(fā)與垃圾回收機制,嚴格的依賴規(guī)范等等。這些無法通過庫或工具解決好,因此Go也就應運而生了。

GO是另一個正在掀起浪潮的后起之秀。它由Google開發(fā),從C語言松散地派生,并在構(gòu)建健壯基礎(chǔ)設(shè)施上,正在贏得競爭對手,例如Java和Python的份額。

億企邦點評:

你該使用哪種語言用于大數(shù)據(jù)項目?恐怕這還得“視情況而定”。如果你對晦澀的統(tǒng)計運算進行繁重的數(shù)據(jù)分析工作,那么億企邦建議你使用R語言;如果你跨GPU進行NLP或密集的神經(jīng)網(wǎng)絡處理,那么Python是很好的選擇;如果想要一種加固的、面向生產(chǎn)環(huán)境的數(shù)據(jù)流解決方案,又擁有所有重要的操作工具,Java或Scala絕對是出色的選擇。

總之,在大數(shù)據(jù)領(lǐng)域內(nèi),每一毫秒的性能損失都影響巨大。不管通用解決方案是采用何種編程語言實現(xiàn)的,你都可以使用一種高級編程語言來快速地實現(xiàn)出一個性能比通用方案更好的,應用于特定領(lǐng)域的解決方案。

關(guān)鍵詞:數(shù)據(jù),集中,處理

74
73
25
news

版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉