• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言操作mysql上亿数据量(ff包ffbase包和ETLUtils包)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

平时都是几百万的数据量,这段时间公司中了个大标,有上亿的数据量。

现在情况是数据已经在数据库里面了,需要用R分析,但是完全加载不进来内存。

 

面对现在这种情况,R提供了ff, ffbase , ETLUtils  的解决方案。

它可以很简单的加载,转换数据库的数据进入R内存,ETLUtils 包现在已经扩展了read.odbc.ffdf

方法用来查询Oracle, MySQL, PostgreSQL & sqlite databases.。

下面我们就来展示一个例子。

require(ETLUtils)
 
login <- list()
login$user <- "bnosac"
login$password <- "YourPassword"
login$dbname <- "YourDB"
login$host <- "localhost/IPaddress"
 
require(RMySQL)
x <- read.dbi.ffdf(
query = "select * from semetis.keywords_performance_endofday", 
dbConnect.args = list(drv = dbDriver("MySQL"), 
dbname = login$dbname, user = login$user, password = login$password, host = login$host), 
VERBOSE=TRUE)
1> dim(x)
[1] 14969674       27
 
login <- list()
login$dsn <- "YourDSN"
login$uid <- "bnosac"
login$pwd <- "YourPassword"
require(RODBC)
x <- read.odbc.ffdf(
query = "select * from semetis.keywords_performance_endofday where date = CURRENT_DATE-1", 
odbcConnect.args = list(dsn = login$dsn, uid = login$uid, pwd = login$pwd),
x = x,
VERBOSE=TRUE)
1> dim(x)
[1] 15062904       27

 

指定本地ff文件路径

save.ffdf(ffdfname, dir=”/PATH/TO/STORE/FF/FILES”)

https://www.rdocumentation.org/packages/ffbase/versions/0.12.3/topics/save.ffdf

load.ffdf(dir=”/PATH/TO/STORE/FF/FILES”)

https://www.rdocumentation.org/packages/ffbase/versions/0.12.3/topics/load.ffdf

https://www.rdocumentation.org/packages/ETLUtils/versions/1.3/topics/read.dbi.ffdf

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
客户流失预测--基于R语言C5.0发布时间:2022-07-18
下一篇:
R语言学习——因子发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap