標籤:

RODPS介紹

這篇文章主要是給外部用戶介紹如何使用RODPS的

(一)概念介紹

RODPS能夠提供一個橋接的方式,使得可以在R語言環境中無縫的使用MaxCompute(原ODPS)裡面的數據、計算資源,類似於開源社區的RHive和Rhadoop的功能。

(二)安裝R基礎環境

2.1 Linux server

可從源碼開始安裝,參見yq.aliyun.com/articles/

2.2 MacOSX和Windows

直接從官網可以下載二進位安裝包,例如mac可以從cran.rstudio.com/bin/ma

(三)安裝RODPS:

3.1 安裝相關依賴包

install.packages("rJava","DBI","RSQLite")

3.2 安裝RODPS

在公共環境中對外環境對應的版本請查看 repo.aliyun.com/rodps/ 在R運行環境中 使用

install.packages("http://repo.aliyun.com/download/RODPS.tar.gz", repos=NULL)

安裝完畢以後還需要配置conf.ini文件,該文件的主要配置項有

access_id=

access_key=

end_point=

project_name=

sqlite_temp=

logview_host=

通過全局變數:export RODPS_CONFIG=path/to/odps_config.ini或者通過 rodps.init配置odps_config.ini

rodps.init("path/to/odps_config.ini")

這個時候載入包

library(RODPS)

可以使用RODPS,可以先看看版本是哪個

rodps.version()

(四)我們來看看RODPS可以做什麼:

對數據和表的基礎處理

獲取當前項目中的表

rodps.table.list()

查看錶結構

可以查看錶中的行數

rodps.rows.table(test_out)

[1] 144

數據載入

df <- rodps.load.table(test_out) nrow(df)

[1] 144

從中進行抽樣計算,因為示例表數據較少,這裡取10%的比例

rodps.sample.srs(test_out,test_out_sample,0.1)

查看其行數

rodps.table.rows("test_out_sample")

[1] 6

用head查看數據

> rodps.table.head("test_out_sample") a01 a02 a03 a04 class prediction_result prediction_score

1 1 0 0.981775 0.464010 1 1 0.8764194

2 1 0 0.941040 0.426805 1 1 0.8900558

3 1 0 1.000000 0.505525 1 1 0.8837226

4 0 0 0.000000 0.000000 0 0 1.0000000

5 1 0 1.000000 0.727275 1 1 0.8837226

6 1 0 0.917135 0.695605 1 1 0.8747627

還可以用RODPS直接畫圖

rodps.hist(tablename=test_out,colname=prediction_score,col=rainbow(10),

main="Hist of sample",freq=F)

集成到Rstudio中執行

遠程MaxCompute和本地R環境的數據通道

執行sql獲取數據到本地R環境中

df <- rodps.sql("select * from test_out")

從而可以在本地進處理

head(df) a01 a02 a03 a04 class prediction_result prediction_score

1 1 0 1.000000 0.405855 0 1 0.8208771

2 1 0 1.000000 0.274195 0 1 0.8606207

3 1 0 0.511685 0.497040 0 0 0.8481383

4 1 0 0.987940 0.446990 1 1 0.8764194

或者從本地R環境load數據到MaxCompute

首先創建一張一模一樣結構的表

rodps.sql("create table test_out_test like test_out")

然後就可以導入到該表中數據

> rodps.table.write(as.data.frame(df),"test_out_test")

[1] TRUE

查看數據條數

> rodps.table.rows("test_out_test")

[1] 10

(四)總結:

這裡簡要介紹了RODPS的基本功能,更多信息可以查看幫助文檔

help(rodps.sql)

help(rodps.table)

未來RODPS將致力於將本地演算法和數據處理運作在分散式系統上面,致力於讓用戶無縫遷移R社區的開源包,提供類似於sparkR那樣的強大的能力。

本來選自阿里雲大數據產品專家「隱林」,擅長MaxCompute、機器學習、分散式、可視化、人工智慧等大數據領域。大數據

推薦閱讀:

除了對付姜你軍、蒜你狠?!天元數據網農業數據能做的更多
政務大數據的全景圖
怎麼才能用數據實現商業價值?
今日數據行業日報(2017.01.03)
Spark 學習: spark 原理簡述

TAG:大數據 |