99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀9個最佳的大數據處理編程語言
9個最佳的大數據處理編程語言
2016-05-28
收藏

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

大數據的浪潮仍在繼續(xù)。它滲透到了幾乎所有的行業(yè),信息像洪水一樣地席卷企業(yè),使得軟件越發(fā)龐然大物,比如Excel看上去就變得越來越笨拙。數據處理不再無足輕重,并且對精密分析和強大又實時處理的需要變得前所未有的巨大。
  那么,在巨大的數據集中進行篩選的最好工具是什么?通過和數據駭客的交流,我們知道了他們用于硬核數據分析最喜歡的語言和工具包。

<a href='/map/r/' style='color:#000;font-size:inherit;'>R語言</a>
1
R語言

  在這些語言名單中,如果R語言排第二,那就沒其他能排第一。自1997年以來,作為昂貴的統(tǒng)計軟件,如Matlab和SAS的免費替代品,它漸漸風靡全球。
  在過去的幾年時間中,R語言已經成為了數據科學的寵兒——數據科學現在不僅僅在書呆子一樣的統(tǒng)計學家中人盡皆知,而且也為華爾街交易員,生物學家,和硅谷開發(fā)者所家喻戶曉。各種行業(yè)的公司,例如Google,Facebook,美國銀行,以及紐約時報都使用R語言R語言正在商業(yè)用途上持續(xù)蔓延和擴散。
  R語言有著簡單而明顯的吸引力。使用R語言,只需要短短的幾行代碼,你就可以在復雜的數據集中篩選,通過先進的建模函數處理數據,以及創(chuàng)建平整的圖形來代表數字。它被比喻為是Excel的一個極度活躍版本。
  R語言最偉大的資本是已圍繞它開發(fā)的充滿活力的生態(tài)系統(tǒng):R語言社區(qū)總是在不斷地添加新的軟件包和功能到它已經相當豐富的功能集中。據估計,超過200萬的人使用R語言,并且最近的一次投票表明,R語言是迄今為止在科學數據中最流行的語言,被61%的受訪者使用(其次是Python,39%)。
  此外,它的身影也漸漸出現在了華爾街。以前,銀行分析師會全神貫注于Excel文件直到深夜,但現在R語言被越來越多地用于金融建模R,特別是作為一種可視化工具,Niall O"Connor,美國銀行的副總裁如是說。 “R語言使我們平凡的表格與眾不同,”他說。
  R語言的日漸成熟,使得它成為了數據建模的首選語言,雖然當企業(yè)需要生產大型產品時它的能力會變得有限,也有的人說這是因為它的地位正在被其他語言篡奪。
  “R更適合于做一個草圖和大概,而不是詳細的構建,”Michael Driscoll,Metamarkets的首席執(zhí)行官說。 “你不會在谷歌的網頁排名以及Facebook的朋友推薦算法的核心找到R語言。工程師會用R語言做原型,然后移交給用Java或Python寫的模型?!?/span>
  話說回來,早在2010年,Paul Butler就以R語言打造了全球的Facebook地圖而著名,這證明了該語言豐富的可視化功能。盡管他現在已經不像以前那樣頻繁地使用R語言了。
  “R正在一點點地過時,因為它的緩慢和處理大型數據集的笨重,”Butler說。
  那么,他使用什么代替呢?請繼續(xù)閱往下看。
  Rython
  如果說R語言是一個神經質又可愛的高手,那么Python是它隨和又靈活的表兄弟。作為一種結合了R語言快速對復雜數據進行挖掘的能力并構建產品的更實用語言,Python迅速得到了主流的吸引力。Python是直觀的,并且比R語言更易于學習,以及它的生態(tài)系統(tǒng)近年來急劇增長,使得它更能夠用于先前為R語言保留的統(tǒng)計分析。
  “這是這個行業(yè)的進步。在過去的兩年時間中,從R語言到Python已經發(fā)生了非常明顯的轉變,”Butler說。
  在數據處理中,在規(guī)模和復雜性之間往往會有一個權衡,于是Python成為了一種折中方案。IPython notebook和NumPy可以用作輕便工作的一種暫存器,而Python可以作為中等規(guī)模數據處理的強大工具。豐富的數據社區(qū),也是Python的優(yōu)勢,因為可以提供了大量的工具包和功能。
  美國銀行使用Python在銀行的基礎架構中構建新的產品和接口,同時也用Python處理財務數據?!癙ython廣泛而靈活,因此人們趨之若鶩,”O(jiān)"Donnell說。
  不過,它并非最高性能的語言,只能偶爾用于大規(guī)模的核心基礎設施,Driscoll這樣說道。
  Julia
  雖然當前的數據科學絕大多數是通過R語言,Python,Java,MatLab和SAS執(zhí)行的。但依然有其他的語言存活于夾縫中,Julia就是值得一看的后起之秀。
  業(yè)界普遍認為Julia過于晦澀難懂。但數據駭客在談到它取代R和Python的潛力時會不由得眉飛色舞。Julia是一種高層次的,極度快速的表達性語言。它比R語言快,比Python更可擴展,且相當簡單易學。
  “它正在一步步成長。最終,使用Julia,你就能夠辦到任何用R和Python可以做到的事情,”Butler說。
  但是至今為止,年輕人對Julia依然猶豫不前。Julia數據社區(qū)還處于早期階段,要能夠和R語言和Python競爭,它還需要添加更多的軟件包和工具。
  “它還很年輕,但它正在掀起浪潮并且非常有前途,”Driscoll說。
  JAVA
  Java,以及基于Java的框架,被發(fā)現儼然成為了硅谷最大的那些高科技公司的骨骼支架。 “如果你去看Twitter,LinkedIn和Facebook,那么你會發(fā)現,Java是它們所有數據工程基礎設施的基礎語言,”Driscoll說。
  Java不能提供R和Python同樣質量的可視化,并且它并非統(tǒng)計建模的最佳選擇。但是,如果你移動到過去的原型制作并需要建立大型系統(tǒng),那么Java往往是你的最佳選擇。
  HadoopHive
  一群基于Java的工具被開發(fā)出來以滿足數據處理的巨大需求。Hadoop作為首選的基于Java的框架用于批處理數據已經點燃了大家的熱情。Hadoop比其他一些處理工具慢,但它出奇的準確,因此被廣泛用于后端分析。它和Hive——一個基于查詢并且運行在頂部的框架可以很好地結對工作。
  Scala
  Scala是另一種基于Java的語言,并且和Java相同的是,它正日益成為大規(guī)模機器學習,或構建高層次算法的工具。它富有表現力,并且還能夠構建健壯的系統(tǒng)。
  “Java就像是建造時的鋼鐵,而Scala則像黏土,因為你之后可以將之放入窯內轉變成鋼鐵,”Driscoll說。
  Kafka和Storm
  那么,當你需要快速實時的分析時又該怎么辦呢?Kafka會成為你的好朋友。它大概5年前就已經出現了,但是直到最近才成為流處理的流行框架。
  Kafka,誕生于LinkedIn內部,是一個超快速的查詢消息系統(tǒng)。Kafka的缺點?好吧,它太快了。在實時操作時會導致自身出錯,并且偶爾地會遺漏東西。
  “有精度和速度之間有一個權衡,”Driscoll說, “因此,硅谷所有的大型高科技公司都會使用兩條管道:Kafka或Storm用于實時處理,然后Hadoop用于批處理系統(tǒng),此時雖然是緩慢的但超級準確?!?/span>
  Storm是用Scala編寫的另一個框架,它在硅谷中因為流處理而受到了大量的青睞。它被Twitter納入其中,勿庸置疑的,這樣一來,Twitter就能在快速事件處理中得到巨大的裨益。
  鼓勵獎:
  MatLab
  MatLab一直以來長盛不衰,盡管它要價不菲,但它仍然被廣泛使用在一些非常特殊的領域:研究密集型機器學習,信號處理,圖像識別,僅舉幾例。
  Octave
  Octave和MatLab非常相似,但它是免費的。不過,它在學術性信號處理圈子之外很少見到。
  GO
  GO是另一個正在掀起浪潮的后起之秀。它由Google開發(fā),從C語言松散地派生,并在構建健壯基礎設施上,正在贏得競爭對手,例如Java和Python的份額。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數1:配置參數 // 參數2:回調,回調的第一個參數驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }