RODPS介紹
這篇文章主要是給外部用戶介紹如何使用RODPS的
(一)概念介紹
RODPS能夠提供一個橋接的方式,使得可以在R語言環境中無縫的使用MaxCompute(原ODPS)裡面的數據、計算資源,類似於開源社區的RHive和Rhadoop的功能。
(二)安裝R基礎環境
2.1 Linux server
可從源碼開始安裝,參見https://yq.aliyun.com/articles/60858?spm=5176.100240.searchblog.7.QxcgSP
2.2 MacOSX和Windows
直接從官網可以下載二進位安裝包,例如mac可以從https://cran.rstudio.com/bin/macosx/
(三)安裝RODPS:
3.1 安裝相關依賴包
install.packages("rJava","DBI","RSQLite")
3.2 安裝RODPS
在公共環境中對外環境對應的版本請查看 http://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_score1 1 0 0.981775 0.464010 1 1 0.87641942 1 0 0.941040 0.426805 1 1 0.89005583 1 0 1.000000 0.505525 1 1 0.88372264 0 0 0.000000 0.000000 0 0 1.00000005 1 0 1.000000 0.727275 1 1 0.88372266 1 0 0.917135 0.695605 1 1 0.8747627
還可以用RODPS直接畫圖
rodps.hist(tablename=test_out,colname=prediction_score,col=rainbow(10),
集成到Rstudio中執行
遠程MaxCompute和本地R環境的數據通道
執行sql獲取數據到本地R環境中
df <- rodps.sql("select * from test_out")
從而可以在本地進處理head(df)
a01 a02 a03 a04 class prediction_result prediction_score1 1 0 1.000000 0.405855 0 1 0.82087712 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:大數據 |