R 大數據處理 (1)

基本介紹

教學目標

R 語言的大數據處理之應用。

重點概念

首先 R 語言是一套強大的開源碼統計程式語言,讓我們免費使用,不僅廣泛應用於資料分析,更能建立獨一無二的資料視覺化。然而 R 語言如同 Hadoop 開源專案一樣也有提供企業版本,其中 Revolution Analytics 所推出的 Revolution R Enterprise 工具最廣為人知,並且在 2015 年被微軟收購,如今已經成為了 SQL Server R Services 和 Microsoft R Server。那究竟開源版本的 R 語言和企業版本的 R 語言主要的差別是什麼呢?

其實最主要的差別在於大數據處理,我們可以從記憶體和中央處理器進行探討,一般來說開源版本的 R 語言皆會將資料讀入至記憶體才能夠進行統計運算。但是當面臨大數據處理時真的有這麼多的記憶體空間提供使用,同時還需要留有運算使用的記憶體空間,此時 Revolution R Enterprise 工具就有提供 XDF 檔案格式能夠讓使用者在不載入資料至記憶體的情況下直接進行高效能的數學運算,避免大數據資料無法載入記憶體中進行分析的問題。此外在不做任何設定的情況下就能夠進行多核心處理,以利解決進行大數據資料處理時效能不佳的問題。然而微軟推出免費版本的 R 語言工具為 Microsoft R Open 工具,只需要下載 Math Kernel Library (MKL) 函式庫進行安裝,就能夠支援多核心處理,至於 XDF 檔案格式目前僅支援企業版本。

開源版本的 R 語言 企業版本的 R 語言
分析處理 記憶體為主 記憶體和硬碟混合為主
分析速度 預設為單核心 預設為多核心
分析套件 最新演算法相關套件 支援大數據相關套件

談到大數據處理,最具代表性的就是 Hadoop 平台,其中 MapReduce 是一個能夠有效率處理儲存在 Hadoop 分散式檔案系統中的大量資料之強大程式語言框架,那麼開源版本的 R 語言是否能夠藉由 MapReduce 的處理方式進行大數據處理呢?可以,早在 2011 年 Revolution Analytics 的開發團隊就建立了 RHadoop 的開源碼專案,讓 R 語言能夠分析 Hadoop 上的資料,並且以 rmr2 套件進行 MapReduce 的大數據處理,同時可以再搭配 plyrmr 套件針對 Hadoop 平台上的檔案進行 R 語言資料處理等相關操作。那麼 R 語言在金融產業有相關的使用案例嗎?有,主要有四大領域,分別為銷售和行銷、財務和風險、客戶和通路以及人力和營運,例如:銷售和行銷領域可以進行客戶獲取、財務和風險領域可以進行防偽冒偵測、客戶和通路領域可以進行客戶生命週期的價值計算、人力和營運領域可以進行客戶服務中心的優化、…等相關應用。

然而上述與金融產業相關應用的資料數量將會越來越大,更進一步匯整為大數據,此時我們就真的需要企業版本的 R 語言進行大數據處理,此時 Microsoft R Server 會是個不錯的選擇,主要原因在於將 R 語言直接與 Hadoop 進行整合,其中包括 Hortonworks 、 Cloudera 和 MapR,以及與資料庫進行整合,其中包括 SQL Server 和 Teradata ,或者直接安裝至 Linux 伺服器上直接使用,將能夠進行更進階的大數據處理與分析,先從準備資料,重點在於可以搭配 SparkR 從 R Server 中進行資料清理和聯結,接著建立模型,重點在於直接透過 R Server 可擴展的函式庫以統計和機器學習演算法建立分類器和預測,最後操作應用,重點在於應用預測分析和資料視覺化支援商業應用。

相關資源