楼主: nothk
2030 2

[问答] R替代SAS遇到瓶颈性问题了,关于RODBC连接数据库之后的数据操作 [推广有奖]

  • 0关注
  • 0粉丝

本科生

46%

还不是VIP/贵宾

-

威望
0
论坛币
51 个
通用积分
0
学术水平
0 点
热心指数
7 点
信用等级
0 点
经验
530 点
帖子
48
精华
0
在线时间
93 小时
注册时间
2015-4-9
最后登录
2020-11-16

楼主
nothk 发表于 2016-5-5 17:55:57 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
LZ在一家公司做实习,公司本来是用的SAS,想考虑能否替换成R,然后我用R来实现现在SAS的功能.

不久前LZ成功用RODBC包连上了公司数据库(DB2),用的是同事的帐号密码。然后表读取,数据读取都没问题。数据库中表的SELECT等操作也ok。

但是最近遇到一个很棘手的问题。首先我们数据库中有两张表,暂且叫做表1和表2吧,表1比较小,表2很大(200w行20列)。首先表1做SELECT弄出一个表3,然后需要表3和表2做JOIN。现在问题是表2在服务器的数据库上,表3在我电脑本地的R上,R很奇怪无法把这两个表进行JOIN。

个人认为现在有两个方法:
一是把表3上传到数据库中,(但同事的帐号没有数据库的修改权限,只能读取,真给我一个能修改数据库的帐号万一把数据库弄坏了责任我也担不起)
二是用R读取表2,但表2真的太大了,内存完全吃不消。

而反观SAS,我用SAS也连上了公司的数据库,用的是同一个帐号密码。
表3 SAS用的是Rsubmit然后creat table,不过创建的是一个work.xxx的表3,这个我估计是本地的SAS中的表,也没有写到数据库里面。然后关键是SAS可以给本地的表3和数据库的表2做JOIN运算!!!

有没有高手指导一下我这种情况R下应该怎么办啊?

网上搜了一下,资料很少,这个兄弟的情况跟我是一样的:
http://stackoverflow.com/questions/29990387/rodbc-using-data-frame-in-a-join-on-sqlquery

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:RODBC 连接数据库 性问题 数据库 Rod 连接数据库 服务器 性问题 电脑 密码

沙发
jiangbeilu 学生认证  发表于 2016-5-5 19:30:28
嘿,看看这个帖子吧,没准会有点帮助。
http://yanping.me/cn/blog/2012/01/01/working-with-large-datasets/

藤椅
马甲1号 发表于 2016-5-10 13:55:11
RODBC貌似可以设置chunk,每次取固定的行数。
因此,感觉可以在设置chunk的前提下,通过循环把远程数据库的数据放到本地的dbms上(每次fetch几万行应该无压力),再在本地dbms里面做join,这样应该可以突破限制。

另外还想到一个方法,就是sql里面利用with子句把本地表生成一个临时表,再和库里面的表进行join。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-20 07:46