VOOZH about

URL: https://read01.com/mEz8koB.html

⇱ 9個最佳的大數據處理程式語言 - 壹讀


Sunday, Apr 12, 2026

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

2017/08/09 來源:物聯網智庫
👁 Image
...

------ 【導讀】 ------

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

👁 Image

剛開始學習數據科學的人都會面對同一個問題:

不知道該先學習哪種程式語言。

不僅僅是程式語言,像Tableau,SPSS等軟體系統也是同樣的情況。有越來越多的工具和程式語言,很難知道該選擇哪一種。

事實是,你的時間有限。學習一門新的程式語言相當於一項巨大的投資,因此在選擇語言時需要有戰略性。

很明顯,一些語言會給你的投資帶來很高的回報(付出的時間和金錢投資)。然而其他語言可能是你每年只用幾次的純粹輔助工具。

我給你的建議就是:先學習R語言

專注於一種語言

在說明為什麼你應該學習R語言之前,我想強調的是,在開始學習數據科學時,你應該學習一種語言。

有些人問我是否應該學習在學R語言的同時學習Python。我的答案基本上是否定的,除非你需要使用一種以上的語言,否則你應該選擇一種語言進行學習。

專注於一種程式語言的原因是,你需要更多地關注過程和技術,而不是語法。你需要掌握如何通過數據科學工具來分析數據,以及如何解決問題。事實證明,R語言是最佳的選擇。

學習R語言

我建議你將R語言作為你的第一個「數據科學程式語言」。雖然也有例外,比如特定的項目需要。因為R語言正在成為數據科學的「通用語言」。

這並不是說R語言是唯一的語言,也不是說它是每個工作的最佳工具。然而,它是使用最廣泛的,而且越來越受歡迎。

O' reilly media在過去幾年中進行了一系列數據科學調查,分析了數據科學趨勢。在2016年的調查報告中,R語言是最常用的程式語言(如果排除SQL的話,在本文中它不能稱為程式語言)。57%的調查人群使用R語言(使用Python的比例為54%)。

另一個常見的語言排名系統是Redmonk程式語言排名,它由GitHub(代碼行)和Stack Overflow(標籤數)的流行指數派生而來。截至2016年11月,R語言在所有程式語言中排名第13。此外,R語言多年來一直呈持續上升趨勢:

此外還有TIOBE指數(按搜尋引擎搜索次數對程式語言進行排名)。在TIOBE指數上,R語言十年來呈現出穩定上升趨勢。

👁 Image
...
使用R語言的公司

在招聘數據科學家的幾家頂級公司中,R語言使用程度非常高。在我認為現代經濟中最優秀的兩家公司——Google和Facebook 都有使用R語言數據科學家。

除了像Google,Facebook和微軟這樣的科技巨頭,R語言在美國銀行,福特,TechCrunch,Uber和Trulia等眾多公司都有廣泛的應用。

R語言在學術界很受歡迎

R語言不僅僅是一個行業工具。它在學術科學家和研究人員中也非常受歡迎,最近著名《自然》雜誌上發表的R語言概況也證實了這一點。

R語言在學術界的備受歡迎,因為它創造了供應行業的人才庫。

換句話說,如果最優秀、最聰明的人群在大學學習了R語言,這將加大R語言在行業中的重要性。當學者、博士和研究人員離開學術界從事商業活動時,他們又將產生對R語言人才的需求。

此外,隨著數據科學的成熟,商業屆的數據科學家將需要與學術屆的科學家進行更多的溝通。我們需要借鑑技術和交流觀點。隨著世界轉變為數據流時,學術科學與面向商業的數據科學之間的界線會變得模糊。

通過R語言學習「數據科學的技能」是最簡單的

然而,R語言的普及性並不是學習R語言的唯一原因。

在選擇語言時,你需要一種在這些領域都具有重要功能的語言。同時你需要執行這些任務的工具,以及在你所選語言中來學習這些技能的資源。

如上所述,你更多地需要關注流程和技術,而不是語法。

你需要學習如何解決問題。你需要學習如何在數據中找到真知灼見。

為此,你需要掌握數據科學的3個核心技能領域:數據處理,數據可視化和機器學習。在R語言中掌握這些技能將比任何其他語言都容易。

數據處理

一般來說,數據科學中80%的工作都是數據處理。通常情況下,你需要花費大量時間來整理你的數據。R語言中有一些很棒的數據管理工具。

R語言中的dplyr包使數據處理變得容易,這可以大大簡化數據處理的工作流程。

數據可視化

ggplot2是最佳的數據可視化工具之一。ggplot2的好處是,在學習語法的同時,還學習如何思考數據可視化。

所有的統計可視化都有很深層的結構。存在構建數據可視化的高度結構化框架,ggplot2基於該框架。

此外,當將ggplot2和dplyr組合在一起時,從數據中得出相關見解幾乎毫不費力。

機器學習

最後,還有機器學習。雖然我認為大多數數據科學初學者不應該急於學習機器學習(首先掌握數據探索更為重要),機器學習是一項重要的技能。當數據探索不再帶來洞察力時,你則需要更強大的工具。

之後再學習更多的語言和工具

最終你會想學習更多的程式語言。就像工具箱中沒有一個最好的工具一樣,沒有一種程式語言能夠完美的解決你所有的數據問題。

以下是在學習R語言之後,你可以考慮學習的語言:

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的框架,被發現儼然成為了矽谷最大的那些高科技公司的骨骼支架。 「如果你去看Twitter,LinkedIn和Facebook,那麼你會發現,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編寫的另一個框架,它在矽谷中因為流處理而受到了大量的青睞。它被Twitter納入其中,勿庸置疑的,這樣一來,Twitter就能在快速事件處理中得到巨大的裨益。

MatLab

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

Octave

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

GO

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

總結:學習R語言,並集中精力

如果你是初學者,R語言是很好的選擇。同時需要專注於學習數據科學的技能。

在學習過程中,你可能會看到很多新技術和新工具,或者一些令人眼花繚亂的數據可視化。

看到其他人的成果(並發現他們正在使用不同的工具)可能會導致你想嘗試其他的東西。相信我:你需要集中注意力。你需要花上幾個月(或更長時間)才能真正投入到一個工具中。

如上所述,如果你確實希望在數據科學工作流程中提高技能。至少在數據可視化和數據處理方面,你得具備紮實的技能。

在R語言上花費100個小時,將比在10個不同工具上各花費10個小時得到更高的回報。最後,通過集中精力,你的時間回報率將更高。不要因為「最新,最炫的事物」而分心。

👁 Image

往期熱文(點擊文章標題即可直接閱讀):

  • 《共享單車上的智能鎖,做出來有多難?》

  • 認知計算、區塊鏈IoT、物聯網安全…看懂的人將控制未來

  • 庫卡、ABB、發那科、安川,4大工業機器人巨擘早已在物聯網領域屯兵養馬

  • 【重磅】物聯網產業全景圖譜報告,首開國內IoT產業二維視角全景圖之先河

  • 一幅漫畫告訴你:除了WiFi,藍牙,最近火爆的NB-IoT能幹嘛?

  • 一幅漫畫告訴你:NB-IoT背後,還有一個大家都在說的LoRa是什麼?

您可能感興趣
免責聲明:本文內容來源于物聯網智庫,文章觀點不代表壹讀立場,如若侵犯到您的權益,或涉不實謠言,敬請向我們提出檢舉
最新文章 / 服務條款 / 私隱保護 / DMCA / 聯絡我們

壹讀/READ01.COM