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