这篇文章主要是给外部用户介绍如何使用RODPS的
RODPS能够提供一个桥接的方式,使得可以在R语言环境中无缝的使用MaxCompute(原ODPS)里面的数据、计算资源,类似于开源社区的RHive和Rhadoop的功能。
可从源码开始安装,参见https://yq.aliyun.com/articles/60858?spm=5176.100240.searchblog.7.QxcgSP
直接从官网可以下载二进制安装包,例如mac可以从https://cran.rstudio.com/bin/macosx/
install.packages("rJava","DBI","RSQLite")
在公共环境中对外环境对应的版本请查看 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.inirodps.init("path/to/odps_config.ini") 这个时候加载包library(RODPS) 可以使用RODPS,可以先看看版本是哪个rodps.version()
获取当前项目中的表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)
执行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购买咨询”钉钉群(群号: 11782920)进行咨询,群二维码如下:
相关资源:python入门教程(PDF版)