9個最佳的大數據處理編程語言

9個最佳的大數據處理編程語言

        英文原文:The 9 Best Languages For Crunching Data

        大數據的浪潮仍在繼續。它滲透到了幾乎所有的行業,信息像洪水一樣地席卷企業,使得軟件越發龐然大物,比如 Excel 看上去就變得越來越笨拙。數據處理不再無足輕重,并且對精密分析和強大又實時處理的需要變得前所未有的巨大。

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

        R語言

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

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

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

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

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

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

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

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

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

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

        Rython

        如果說R語言是一個神經質又可愛的高手,那么 Python 是它隨和又靈活的表兄弟。作為一種結合了R語言快速對復雜數據進行挖掘的能力并構建產品的更實用語言,Python 迅速得到了主流的吸引力。Python 是直觀的,并且比R語言更易于學習,以及它的生態系統近年來急劇增長,使得它更能夠用于先前為R語言保留的統計分析。

        “這是這個行業的進步。在過去的兩年時間中,從R語言到 Python 已經發生了非常明顯的轉變,”Butler 說。

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

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

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

        Julia

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

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

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

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

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

        JAVA

        Java,以及基于 Java 的框架,被發現儼然成為了硅谷最大的那些高科技公司的骨骼支架。 “如果你去看 推ter,LinkedIn 和 非死book,那么你會發現,Java 是它們所有數據工程基礎設施的基礎語言,”Driscoll 說。

        Java 不能提供R和 Python 同樣質量的可視化,并且它并非統計建模的最佳選擇。但是,如果你移動到過去的原型制作并需要建立大型系統,那么 Java 往往是你的最佳選擇。

        Hadoop 和 Hive

        一群基于 Java 的工具被開發出來以滿足數據處理的巨大需求。Hadoop 作為首選的基于 Java 的框架用于批處理數據已經點燃了大家的熱情。Hadoop 比其他一些處理工具慢,但它出奇的準確,因此被廣泛用于后端分析。它和 Hive——一個基于查詢并且運行在頂部的框架可以很好地結對工作。

        Scala

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

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

        Kafka 和 Storm

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

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

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

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

        鼓勵獎:

        MatLab

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

        Octave

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

        GO

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

        -

        譯文鏈接:http://原網站已經失效/article/9-best-language-crunching-data.html

        翻譯作者:碼農網 – 小峰

 

 本文由用戶 vctx3545 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!