大數(shù)據(jù)雖然能為企業(yè)帶來(lái)很多好處,但同時(shí)它也讓開(kāi)發(fā)人員們很是頭痛,更為要命的是,開(kāi)發(fā)人員漸漸發(fā)現(xiàn)傳統(tǒng)編程語(yǔ)言不足以應(yīng)付他們遇到的許多挑戰(zhàn)。
數(shù)據(jù)科學(xué)家和開(kāi)發(fā)人員在處理數(shù)據(jù)時(shí)往往會(huì)有以下幾個(gè)選擇:
·基于GUI的開(kāi)發(fā)平臺(tái)。
·C-based語(yǔ)言(如C,C ++和Java)。
·R語(yǔ)言。
R語(yǔ)言論壇博主Oliver Bracht曾經(jīng)寫(xiě)過(guò)一篇關(guān)于R語(yǔ)言優(yōu)點(diǎn)的主題帖子,并指出R比其他語(yǔ)言更適合處理更大的數(shù)據(jù)查詢。
Jan Wijffels在talkR會(huì)議上列舉了不同規(guī)模的數(shù)據(jù)集,根據(jù)經(jīng)驗(yàn),百萬(wàn)條記錄的數(shù)據(jù)集可以輕松地用標(biāo)準(zhǔn)R進(jìn)行處理;百萬(wàn)到十億條記錄的數(shù)據(jù)集也可以使用R來(lái)處理,但是需要額外的努力;十億條以上的數(shù)據(jù)集就需要MapReduce算法,而這些算法可以在R中設(shè)計(jì),并用Hadoop等連接器進(jìn)行處理。
下面我們來(lái)看一下數(shù)據(jù)科學(xué)家都使用哪些工具和編程語(yǔ)言:
GUI開(kāi)發(fā)平臺(tái)
GUI開(kāi)發(fā)平臺(tái)非常友好,但是它們不足以處理大型的大數(shù)據(jù)項(xiàng)目,隨著大數(shù)據(jù)漸漸成為企業(yè)的優(yōu)先事務(wù),更多的大數(shù)據(jù)項(xiàng)目將會(huì)涌現(xiàn),這些GUI開(kāi)發(fā)平臺(tái)會(huì)更受歡迎。
C以及C-based語(yǔ)言
C以及C-based語(yǔ)言早在1978年就被制定了編程語(yǔ)言標(biāo)準(zhǔn),C是C ++,Java,Python以及其他面向?qū)ο缶幊陶Z(yǔ)言的基礎(chǔ)。雖然新的C-based語(yǔ)言具有強(qiáng)大的面向?qū)ο竽芰?,但它們?cè)诖髷?shù)據(jù)查詢方面也具有一定的局限性。
C語(yǔ)言有一些很好的數(shù)據(jù)處理方法,程序員會(huì)選擇C是基于以下的原因:
·C是用于周界預(yù)估和處理傳感器數(shù)據(jù)的偉大語(yǔ)言。
·Java生態(tài)系統(tǒng)類似于Hadoop。
·C ++可用于處理雷達(dá)數(shù)據(jù)。
這些語(yǔ)言在處理GB級(jí)的數(shù)據(jù)時(shí)非常有用,但是在處理大數(shù)據(jù)時(shí)并不健壯。例如,C++可用于大數(shù)據(jù)項(xiàng)目,但是要求程序員要十分熟練準(zhǔn)確的使用指針。C-based語(yǔ)言的局限性使得開(kāi)發(fā)人員不得不去尋找替代方案,而R語(yǔ)言是更新的編程語(yǔ)言,更適合處理大數(shù)據(jù)。
R是查詢和處理大數(shù)據(jù)的更好選擇
R語(yǔ)言的大數(shù)據(jù)編程是在幾年前開(kāi)發(fā)的,它用于數(shù)據(jù)分析和分布式計(jì)算。R語(yǔ)言的庫(kù)被廣泛應(yīng)用于大型分布式平臺(tái),而且在較小的系統(tǒng)上也能很好地運(yùn)行,甚至還可以在個(gè)人筆記本電腦上使用。
InfoWorld的編輯Martin Heller指出,R是更適合大數(shù)據(jù)開(kāi)發(fā)人員有以下幾個(gè)原因:
R語(yǔ)言的包和函數(shù)能夠加載各種來(lái)源的數(shù)據(jù),除了使用read.table()函數(shù)處理的逗號(hào)之外的分隔符,您可以復(fù)制和粘貼數(shù)據(jù)表,讀取Excel文件,將Excel連接到R,導(dǎo)入SAS和SPSS數(shù)據(jù)以及訪問(wèn)數(shù)據(jù)庫(kù), Salesforce和RESTful接口。
您不需要學(xué)習(xí)標(biāo)準(zhǔn)數(shù)據(jù)導(dǎo)入的語(yǔ)法,因?yàn)镽Studio Tools | Import Dataset菜單項(xiàng)將幫助您通過(guò)查看文本文件或URL中的數(shù)據(jù),設(shè)置正確的轉(zhuǎn)換選項(xiàng)來(lái)交互地生成正確的命令
我們來(lái)更詳細(xì)地看一下這些要點(diǎn):
多個(gè)來(lái)源加載數(shù)據(jù)
在大數(shù)據(jù)爆紅之前,大多數(shù)應(yīng)用程序都是從單一來(lái)源匯總數(shù)據(jù)。而大數(shù)據(jù)催生了物聯(lián)網(wǎng)的發(fā)展,現(xiàn)在許多項(xiàng)目都要依賴眾多來(lái)源的數(shù)據(jù)。營(yíng)銷應(yīng)用程序是一個(gè)典型的例子,他們需要從內(nèi)部數(shù)據(jù)庫(kù),社交媒體和客戶設(shè)備等多個(gè)來(lái)源來(lái)收集客戶數(shù)據(jù)。所以你需要一種可以從所有來(lái)源查詢和處理數(shù)據(jù)的編程語(yǔ)言。
程序員的適應(yīng)程度
程序員學(xué)習(xí)新的語(yǔ)言需要一定的時(shí)間,不過(guò),一般來(lái)說(shuō)多功能的編程語(yǔ)言都有更陡峭的學(xué)習(xí)曲線,尤其是處理大數(shù)據(jù)之類的復(fù)雜東西。
而R是一個(gè)例外。只要程序員了解其基本編碼原則,就可以使用內(nèi)建的庫(kù)來(lái)處理大數(shù)據(jù)。
與其他語(yǔ)言的兼容性
R語(yǔ)言的優(yōu)點(diǎn)之一就是和其他主流的編程語(yǔ)言兼容。
從云平臺(tái)中提取的能力
如果程序員學(xué)習(xí)了R語(yǔ)言擴(kuò)展包dplyr,就可以使用它來(lái)運(yùn)行不同云平臺(tái)的大數(shù)據(jù)查詢,如Google BigQuery和Amazon Redshift。
托管公司與R兼容
由于R可能成為大數(shù)據(jù)應(yīng)用程序的標(biāo)準(zhǔn)編程語(yǔ)言,所以更多的托管公司開(kāi)始重視R語(yǔ)言,以下托管公司都在近期為R語(yǔ)言程序員提供了新的解決方案:
Host.AG是來(lái)自Antigua 和Barbuda,的一家托管公司,它使用大數(shù)據(jù)來(lái)分析網(wǎng)絡(luò)安全威脅并部署最佳解決方案,例如DDoS攻擊。
VPS.AG認(rèn)為許多客戶依賴大數(shù)據(jù),但是預(yù)算有限,所以他們向GB數(shù)據(jù)級(jí)的公司提供經(jīng)濟(jì)托管服務(wù)。
TrueHoster深耕各行業(yè)的客戶服務(wù),使用大數(shù)據(jù)為所有行業(yè)定制服務(wù)計(jì)劃。
隨著大數(shù)據(jù)的繼續(xù)深入發(fā)展,其他托管服務(wù)供應(yīng)商對(duì)于R語(yǔ)言兼容性的需求會(huì)上升。
R將成為大數(shù)據(jù)的未來(lái)?
大數(shù)據(jù)正在以各種方式改變我們的生活,但是卻很少有人談?wù)摯髷?shù)據(jù)時(shí)如何改變程序員的生活。程序員正在尋找更強(qiáng)大的解決方案,他們發(fā)現(xiàn),R具有許多其他語(yǔ)言缺乏的大數(shù)據(jù)特征,并相信在不久的將來(lái)R語(yǔ)言可能會(huì)成為更流行的語(yǔ)言。