大數據時代,伴隨而來的是基礎設施的巨大飛躍,數據儲存技術、網絡技術的迅猛發展。越來越多的人開始成為大數據玩家,工欲善其事必先利其器。中培偉業《大數據分析及可視化技術應用實戰》培訓專家謝老師表示,大數據的應用離開不10種開發語言:
語言——
若要列出所有程序語言,你能忘記其他的沒關系,但最不能忘的就是R。從1997年悄悄地出現,最大的優勢就是它免費,為昂貴的統計軟件像是MatlabSAS的另一種選擇。
但是在過去幾年來,它的身價大翻轉,變成了資料科學界眼中的寶。不只是木訥的統計學家熟知它,包括WallStreet交易員、生物學家,以及硅谷開發者,他們都相當熟悉。多元化的公司像是GoogleFacebook、美國銀行以及NewYorkTimes通通都使用,它的商業效用持續提高。
R的好處在于它簡單易上手,透過,你可以從復雜的數據集中篩選你要的數據,從復雜的模型函數中操作數據,建立井然有序的圖表來呈現數字,這些都只需要幾行程序代碼就可以了,打個比方,它就像是好動版本的Excel
R最棒的資產就是活躍的動態系統,社群持續地增加新的軟件包,還有以內建豐富的功能集為特點。目前估計已有超過200萬人使用,最近的調查顯示,在數據科學界里,到目前為止最受歡迎的語言,占了回復者的61%(緊追在后的是39%Python)。
它也吸引了WallStreet的注目。傳統而言,證券分析師在Excel檔從白天看到晚上,但現在在財務建模的使用率逐漸增加,特別是可視化工具
在數據建模上,它正在往逐漸成熟的專業語言邁進,雖然R仍受限于當公司需要制造大規模的產品時,而有的人說他被其他語言篡奪地位了。
Python——
如果說R是神經質又令人喜愛的Geek,那Python就是隨和又好相處的女生。
Python結合了的快速、處理復雜數據采礦的能力以及更務實的語言等各個特質,迅速地成為主流,Python比起,學起來更加簡單也更直觀,而且它的生態系統近幾年來不可思議地快速成長,在統計分析上比起功能更強。
在數據處理范疇內,通常在規模與復雜之間要有個取舍,而Python以折衷的姿態出現。IPythonNotebook(記事本軟件)和NumPy被用來暫時存取較低負擔的工作量,然而Python對于中等規模的數據處理是相當好的工具;Python擁有豐富的資料族,提供大量的工具包和統計特征。
然而,雖然它的優點能夠彌補R的缺點,它仍然不是最高效能的語言,偶爾才能處理龐大規模、核心的基礎建設。
Julia——
今日大多數的數據科學都是透過RPythonJavaMatlabSAS為主,但仍然存在著鴻溝要去彌補,而這個時候,新進者Julia看到了這個痛點。
Julia仍太過于神秘而尚未被業界廣泛的采用,但是當談到它的潛力足以搶奪Python的寶座時,數據黑客也難以解釋。原因在于Julia是個高階、不可思議的快速和善于表達的語言,比起要快的許多,比起Python又有潛力處理更具規模的數據,也很容易上手。
就現在而言,若要說Julia發展會倒退的原因,大概就是它太年輕了。Julia的數據小區還在初始階段,在它要能夠和Python競爭前,它還需要更多的工具包和軟件包。
Driscoll說,它就是因為它年輕,才會有可能變成主流又有前景。
Java——
Driscoll說,Java和以Java為基礎的架構,是由硅谷里最大的幾家科技公司的核心所建立的,如果你從TwitterLinkedin或是Facebook里觀察,你會發現Java對于所有數據工程基礎架構而言,是非常基礎的語言。
Java沒有和Python一樣好的可視化功能,它也不是統計建模的最佳工具,但是如果你需要建立一個龐大的系統、使用過去的原型,那Java通常會是你最基的選擇。
hadoop and Hive——
為了迎合大量數據處理的需求,以Java為基礎的工具群興起。Hadoop為處理一批批數據處理,發展以Java為基礎的架構關鍵;相較于其他處理工具,Hadoop慢許多,但是無比的準確和可被后端數據庫分析廣泛使用。和Hive搭配的很好,Hive是基于查詢的架構下,運作的相當好。
Scala——
又是另一個以Java為基礎的語言,和Java很像,對任何想要進行大規模的機械學習或是建立高階的算法,Scala會是逐漸興起的工具。它是善于呈現且擁有建立可靠系統的能力。
Kafka andStorm——
說到當你需要快速的、實時的分析時,你會想到什么?Kafka將會是你的最佳伙伴。其實它已經出現五年有了,只是因為最近串流處理興起才變的越來越流行。
Kafka是從Linkedin內誕生的,是一個特別快速的查詢訊息系統。Kafka的缺點呢就是它太快了,因此在實時操作時它會犯錯,有時候會漏掉東西。
魚與熊掌不可兼得,「必須要在準確度跟速度之間做一個選擇」,Driscoll說。所以全部在硅谷的科技大公司都利用兩個管道:用KafkaStorm處理實時數據,接下來打開Hadoop處理一批批處理數據系統,這樣聽起來有點麻煩又會有些慢,但好處是,它非常非常精準。
Storm是另一個從Scala寫出來的架構,在硅谷逐漸大幅增加它在串流處理的受歡迎程度,被Twitter并購,這并不意外,因為Twitter對快速事件處理有極大的興趣。
Matlab——
Matlab可以說是歷久不衰,即使它標價很高;在非常特定的利基市場它使用的相當廣泛,包括密集的研究機器學習、信號處理、圖像辨識等等。
Octave——
OctaveMatlab很像,除了它是免費的之外。然而,在學術信號處理的圈子,幾乎都會提到它。
GO——
GO是另一個逐漸興起的新進者,從Google開發出來的,放寬點說,它是從語言來的,并且在建立強大的基礎架構上,漸漸地成為JavaPython的競爭者。