十種程序語言幫你讀懂大數據的“秘密”

摘要:經過數年發展,當下大數據領域已充斥著各種各樣的分析工具,那么如何才能選擇自己適合的。本文從R、Scala、Java、Go、Python等10種語言著手,帶大家一覽大數據領域的常用工具。

【編者按】面對成千上萬條數據記錄,你是否在焦慮沒有找到一種快捷而又精準的方式進行處理呢?本文從編程語言著手,悉數大數據領域的哪些事兒。


免費訂閱“CSDN大數據”微信公眾號,實時了解最新的大數據進展!

CSDN大數據,專注大數據資訊、技術和經驗的分享和討論,提供Hadoop、Spark、Imapala、Storm、HBase、MongoDB、Solr、機器學習、智能算法等相關大數據觀點,大數據技術,大數據平臺,大數據實踐,大數據產業資訊等服務。


以下為原文:

隨著大數據的熱潮不斷升溫,幾乎各個領域都有洪水傾瀉般的信息涌來,面對用戶成千上萬的瀏覽記錄、記錄行為數據,如果就單純的Excel來進行數據處理是遠遠不能滿足的。但如果只用一些操作軟件來分析,而不怎么如何用邏輯數據來分析的話,那也只是簡單的數據處理。

替代性很高的工作,而無法深入規劃策略的核心。

當然,基本功是最不可忽略的環節,想要成為數據科學家,對于這幾個程序你應該要有一定的認識:

R

若要列出所有程序語言,你能忘記其他的沒關系,但最不能忘的就是R。從1997年悄悄地出現,最大的優勢就是它免費,為昂貴的統計軟件像是Matlab或SAS的另一種選擇。

但是在過去幾年來,它的身價大翻轉,變成了資料科學界眼中的寶。不只是木訥的統計學家熟知它,包括WallStreet交易員、生物學家,以及硅谷開發者,他們都相當熟悉R。多元化的公司像是Google、Facebook、美國銀行以及NewYorkTimes通通都使用R,它的商業效用持續提高。

R的好處在于它簡單易上手,透過R,你可以從復雜的數據集中篩選你要的數據,從復雜的模型函數中操作數據,建立井然有序的圖表來呈現數字,這些都只需要幾行程序代碼就可以了,打個比方,它就像是好動版本的Excel。

R最棒的資產就是活躍的動態系統,R社群持續地增加新的軟件包,還有以內建豐富的功能集為特點。目前估計已有超過200萬人使用R,最近的調查顯示,R在數據科學界里,到目前為止最受歡迎的語言,占了回復者的61%(緊追在后的是39%的Python)。

它也吸引了WallStreet的注目。傳統而言,證券分析師在Excel檔從白天看到晚上,但現在R在財務建模的使用率逐漸增加,特別是可視化工具,美國銀行的副總裁NiallO’Conno說,「R讓我們俗氣的表格變得突出」。

在數據建模上,它正在往逐漸成熟的專業語言邁進,雖然R仍受限于當公司需要制造大規模的產品時,而有的人說他被其他語言篡奪地位了。

“R更有用的是在畫圖,而不是建模。”頂尖數據分析公司Metamarkets的CEO,MichaelDriscoll表示,

“你不會在Google的網頁排名核心或是Facebook的朋友們推薦算法時看到R的蹤影,工程師會在R里建立一個原型,然后再到Java或Python里寫模型語法”。

舉一個使用R很有名的例子,在2010年時,PaulButler用R來建立Facebook的世界地圖,證明了這個語言有多豐富多強大的可視化數據能力,雖然他現在比以前更少使用R了。

“R已經逐漸過時了,在龐大的數據集底下它跑的慢又笨重”Butler說。

所以接下來他用什么呢?

Python

如果說R是神經質又令人喜愛的Geek,那Python就是隨和又好相處的女生。

Python結合了R的快速、處理復雜數據采礦的能力以及更務實的語言等各個特質,迅速地成為主流,Python比起R,學起來更加簡單也更直觀,而且它的生態系統近幾年來不可思議地快速成長,在統計分析上比起R功能更強。

Butler說,“過去兩年間,從R到Python地顯著改變,就像是一個巨人不斷地推動向前進”。

在數據處理范疇內,通常在規模與復雜之間要有個取舍,而Python以折衷的姿態出現。IPythonNotebook(記事本軟件)和NumPy被用來暫時存取較低負擔的工作量,然而Python對于中等規模的數據處理是相當好的工具;Python擁有豐富的資料族,提供大量的工具包和統計特征。

美國銀行用Python來建立新產品和在銀行的基礎建設接口,同時也處理財務數據,“Python是更廣泛又相當有彈性,所以大家會對它趨之若鶩。”O’Donnell如是說。

然而,雖然它的優點能夠彌補R的缺點,它仍然不是最高效能的語言,偶爾才能處理龐大規模、核心的基礎建設。Driscoll是這么認為的。

Julia

今日大多數的數據科學都是透過R、Python、Java、Matlab及SAS為主,但仍然存在著鴻溝要去彌補,而這個時候,新進者Julia看到了這個痛點。

Julia仍太過于神秘而尚未被業界廣泛的采用,但是當談到它的潛力足以搶奪R和Python的寶座時,數據黑客也難以解釋。原因在于Julia是個高階、不可思議的快速和善于表達的語言,比起R要快的許多,比起Python又有潛力處理更具規模的數據,也很容易上手。

“Julia會變的日漸重要,最終,在R和Python可以做的事情在Julia也可以”。Butler是這么認為的。

就現在而言,若要說Julia發展會倒退的原因,大概就是它太年輕了。Julia的數據小區還在初始階段,在它要能夠和R或Python競爭前,它還需要更多的工具包和軟件包。

Driscoll說,它就是因為它年輕,才會有可能變成主流又有前景。

Java

Driscoll說,Java和以Java為基礎的架構,是由硅谷里最大的幾家科技公司的核心所建立的,如果你從Twitter、Linkedin或是Facebook里觀察,你會發現Java對于所有數據工程基礎架構而言,是非常基礎的語言。

Java沒有和R和Python一樣好的可視化功能,它也不是統計建模的最佳工具,但是如果你需要建立一個龐大的系統、使用過去的原型,那Java通常會是你最基的選擇。

Hadoop and Hive


為了迎合大量數據處理的需求,以Java為基礎的工具群興起。Hadoop為處理一批批數據處理,發展以Java為基礎的架構關鍵;相較于其他處理工具,Hadoop慢許多,但是無比的準確和可被后端數據庫分析廣泛使用。和Hive搭配的很好,Hive是基于查詢的架構下,運作的相當好

Scala

又是另一個以Java為基礎的語言,和Java很像,對任何想要進行大規模的機械學習或是建立高階的算法,Scala會是逐漸興起的工具。它是善于呈現且擁有建立可靠系統的能力。

“Java像是用鋼鐵建造的;Scala則是讓你能夠把它拿進窯烤然后變成鋼的黏土”Driscoll說。

Kafka andStorm

說到當你需要快速的、實時的分析時,你會想到什么?Kafka將會是你的最佳伙伴。其實它已經出現五年有了,只是因為最近串流處理興起才變的越來越流行。

Kafka是從Linkedin內誕生的,是一個特別快速的查詢訊息系統。Kafka的缺點呢?就是它太快了,因此在實時操作時它會犯錯,有時候會漏掉東西。

魚與熊掌不可兼得,「必須要在準確度跟速度之間做一個選擇」,Driscoll說。所以全部在硅谷的科技大公司都利用兩個管道:用Kafka或Storm處理實時數據,接下來打開Hadoop處理一批批處理數據系統,這樣聽起來有點麻煩又會有些慢,但好處是,它非常非常精準。

Storm是另一個從Scala寫出來的架構,在硅谷逐漸大幅增加它在串流處理的受歡迎程度,被Twitter并購,這并不意外,因為Twitter對快速事件處理有極大的興趣。


Matlab

Matlab可以說是歷久不衰,即使它標價很高;在非常特定的利基市場它使用的相當廣泛,包括密集的研究機器學習、信號處理、圖像辨識等等。

Octave

Octave和Matlab很像,除了它是免費的之外。然而,在學術信號處理的圈子,幾乎都會提到它。

GO

GO是另一個逐漸興起的新進者,從Google開發出來的,放寬點說,它是從C語言來的,并且在建立強大的基礎架構上,漸漸地成為Java和Python的競爭者。

這么多的軟件可以使用,但我認為不見得每個都一定要會才行,知道你的目標和方向是什么,就選定一個最適合的工具使用吧!可以幫助你提升效率又達到精準的結果。

原文鏈接: 十種程序語言幫你讀懂大數據的“秘密”

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447384.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447384.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447384.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

標準開源產品是打破供應商壟斷的關鍵

Mrten Mickos是美國桉樹系統公司的CEO,提出當公司拘泥于自己的設計和定制化時,與他們被供應商鎖定所受到的損害程度是相當的。Mickos解釋了為什么他認為采用標準開源產品是避免這兩種被鎖定類型的最好方式。當談到軟件和云服務時,業務鎖定是有…

專訪阿里云總裁王文彬:做出“用得爽”的工程產品

摘要:已擁有近百萬不同行業領域用戶的阿里云,在產品開發、服務輸出與生態系統建設等方面還將繼續加速,多點開花。 回顧在2014年已經過去的半年中,阿里云在產品開發、服務輸出與生態系統建設層面的諸多動作。不難看出,…

寫代碼前的準備,你做好了嗎?

我們程序員很容易給別人一種深刻的誤解:寫代碼的。包括我們自己有時候也會陷入這樣的圈套之中。很多程序員在接到任務之后,就會馬上想著如何用代碼來實現,這是一種很不好的做法。其實,在我們寫代碼之前,還有很多工作要…

周鴻祎:比情懷更重要的硬件創業三定律

7月31日,首屆福布斯中國創新峰會于東莞松山湖高新區召開,峰會集結了中國互聯網與制造業前沿的商業創新領袖,集中探討互聯網時代如何重鑄產業未來。 奇虎360董事長周鴻祎首先就互聯網創新闡述了自己對硬件和制造業未來的看法。他認為互聯網催…

C++11(及現代C++風格)和快速迭代式開發

過去的一年我在微軟亞洲研究院做輸入法,我們的產品叫“英庫拼音輸入法” (下載Beta版),如果你用過“英庫詞典”(現已更名為必應詞典),應該知道“英庫”這個名字(實際上我們的核心開發…

軟件系統分析師與架構師技能大PK(您具備了哪些呢?)

軟件系統分析師與架構師在職責與技能方面沒有明顯的界線,你中有我我中有你,同時也有各自自己的世界,很值得拿來比比。 系統分析師職責:告訴我們系統應該做什么。 l 管理到技術的橋梁 各領域業務到信息化技術的通知翻譯者。 l 對軟件項目進行整…

桌面系統和程序員

本周我出席了OpenStack峰會。在峰會上絕大多數應用部署都是基于Linux的,然而,大家使用的筆記本電腦最多的還是蘋果產的。人們寫代碼,最終要把代碼部署到Linux上,但在編碼時卻使用另外一種不同的操作系統。 最有趣的還是他們使用的…

原型設計工具的對比評測記錄(一)

概述:本文是美國的專業設計公司cooper公司的交互設計師Emily Schwartzman所寫的一篇對眾多原型設計工具的對比評測。這里是前半部分,從總體角度介紹評測及其結果。原型設計工具的對比評測記錄(一)原型設計工具的對比評測記錄&…

軟件開發人員進修必備的20本書

初級軟件開發人員進修必備的20本書(上) #原創 程序開發 申請達人,去除贊助商鏈接開發和編程向來就不是一件輕松的事,有時候你可能需要別人稍微點化一下,或者從書中得到一些有用的幫助。總而言之,無論是工作流程還是進修你的專業&a…

為什么我喜歡單獨編程

大約是一年前,我寫了一篇關于我為什么不喜歡結對編程的帖子。此文也是對該帖子的補充。 至今為止我已經在加利福尼亞州科學院工作5個月了。我創建了一個由美國國家科學基金會資助的關于螞蟻分類學的網站:antcat.org。 這是我作為一個程序員25年以來最棒…

如何看待自己寫的爛代碼

如果你不是入行不久的新程序員,你很可能會遇到一些你曾經寫過的老代碼,看到它們,你可能會有這樣的反應: 哦,shit!這是什么?當時我腦袋進水了? 我就這樣過。我的朋友和同事們都經歷過…

給創業者的一些建議

CEO要像個產品經理 就拿我的項目來說,網站的模板設計,視覺體驗,操作體驗,產品展示,網址等都是不合格的。創始人開始創業其實就是一個產品經理,好好雕琢你的產品。 不做機會最大的,只做自己擅長…

談操作系統的碎片化和融合

摘要:目前,Android和iOS統治著移動操作系統,桌面端被Windows所主宰,隨著智能家居、可穿戴設備等新興平臺的興起,造成了各家操作系統四分五裂的情況,但在不久的將來他們終究會走向融合。 目前,An…

盤點大數據的十大發展方向,Scale-out將成主流

摘要:隨著人們對大數據認知的加強,除去特點之外,人們開始更加關注于它的使用價值和未來的服務方向。本文列舉了大數據的十大發展方向,其中Scale-out將成為主流。 【編者按】如今,大數據儼然成為IT領域最受關注的熱詞之…

程序員的成功是否有規律可循?

摘要:自然界中存在許多規律,那么在程序人生上是否有規律可循呢?這種規律是如大多數人期望的那樣嗎?V眾投發起人李智勇對此進行了探討,他分析了必然與偶然、本質與細節,并就程序人生規律的三要素進行了解讀。…

S?D?I?與?A?S?I 接口詳解介紹

分量編碼 在對彩色電視信號進行數字化處理和傳輸是,一種常用的方式是分別對其3個分量(Y,R-Y,B-Y)進行數字化編碼。這就是分量分量編碼,另外還有全信號編碼,全信號編碼是對彩色全電視信號直接進行…

FFMPEG解碼多線程

FFMPEG多線程解碼 FFMPEG多線程編碼器一般以在Slice內分功能模塊進行多線程編碼,如h263,h263P,msmpeg(v1, v2, v3),wmv1。包含以下幾個線程:(1)Pre_estimation_motion_thread運動估計前的準備;(2)Estimation_motion_t…

SpringNBoot日志配置

市面上的日志框架 日志門面 (日志的抽象層)日志門面 (日志的抽象層)JCL(Jakarta Commons LoggingSLF4j(Simple Logging Facade for Java) jboss-loggiJUL(java.util.logging&#x…

ffmpeg的內部Video Buffer管理和傳送機制

本文主要介紹ffmpeg解碼器內部管理Video Buffer的原理和過程,ffmpeg的Videobuffer為內部管理,其流程大致為:注冊處理函數->幀級釋放->幀級申請->清空。 1 注冊get_buffer()和release_buffer() FFAPI_InitCodec() avcodec_alloc_c…

springBoot的模版引擎

模版引擎 常見的模版引擎有JSP、Velocity、Freemarker和Thymeleaf Thymeleaf模版 使用時需要把html頁面放在classpath&#xff1a;/templates/文件夾下&#xff0c;thymeleaf就能自動渲染創建模版文件&#xff0c;并需要導入thymeleaf的名稱空間 <html lang"en"…