楼主: libran_x
19430 9

[实际应用] R跑大数据很慢怎么办 [推广有奖]

  • 0关注
  • 0粉丝

初中生

76%

还不是VIP/贵宾

-

威望
0
论坛币
16 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
112 点
帖子
10
精华
0
在线时间
24 小时
注册时间
2008-7-9
最后登录
2014-4-23

楼主
libran_x 发表于 2013-10-19 09:10:12 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
最近打算用R做一些数据挖掘的东西,数据库也不是很大,10g,公司也有一台32g内存的机器能跑,但是还是很慢啊,读入这个数据库就用了大概十多分钟。更别说之后再跑什么程序了,而且这个10g的库只是个sample。真正的库还要大很多。想问问各位大牛,你们都怎么解决大数据和R的问题???
二维码

扫码加我 拉你入群

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

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

关键词:大数据 怎么办 Sample AMPL 数据挖掘 数据库 程序 而且

沙发
ltx5151 发表于 2013-10-19 10:34:42
我觉得吧,跑大数据其实本质上在于你如何写你的R程序。R可以处理大数据,但是前提是你要花很多心思去使用合理的方式,同时对R的运算和你使用的模型方法有深入的理解。比如删减不必要的变量,避免使用for循环,合理运用数据结构等等。不过你的10G数据不会在每一步计算都同时使用吧,需要根据你每一步计算的形式进行一定的优化。对于数据集整体的运算和变化,可以的话尽量在数据库的层面用SQL处理,R只负责最后的运算。如果SQL本身还不够灵活,可以用python在中间连接,python从数据库承接数据,做大处理,最后运算放在R里面。总之就是具体情况具体分析。通常来说,处理这么大的数据,很多时候一些常用的package是不行的,因为它们没有针对你的数据进行特殊优化,所以可能不够高效。

有两个帖子可以提供一点小的改进,但是主要还在与lz具体的问题和数据:
https://bbs.pinggu.org/thread-2286673-1-1.html

https://bbs.pinggu.org/thread-2279782-1-1.html
已有 2 人评分经验 学术水平 热心指数 信用等级 收起 理由
李会超 + 80 精彩帖子
guo.bailing + 80 + 3 + 3 + 3 分析的有道理

总评分: 经验 + 160  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

藤椅
libran_x 发表于 2013-10-22 22:15:33
ltx5151 发表于 2013-10-19 10:34
我觉得吧,跑大数据其实本质上在于你如何写你的R程序。R可以处理大数据,但是前提是你要花很多心思去使用合 ...
多谢回复,看来如果买不起Revolution的话,只能是几种工具并行了。。。。

板凳
lanzezhuang 发表于 2015-8-7 14:06:40
Revolution有多贵啊?

报纸
马甲1号 发表于 2015-8-7 15:53:57
卡在把数据从数据库读入R的步骤? 之前看过些资料, 貌似R直接通过api读数据库的效率, 不如把数据库dump成txt再read.table的效率. 可以试试先把数据库dump出来, 再用R读文本文件.

地板
jing09y 发表于 2017-3-20 12:58:06
我的1G的txt数据都加载不出来,正在找方法

7
zycle 发表于 2017-6-14 14:45:29
readr::read_lines()或者write_lines()
读写数据超级快!强烈推荐!
https://bbs.pinggu.org/thread-5001643-1-1.html

8
施海岩 发表于 2018-3-1 11:19:29
自我感觉R读取数据和运行数据都很慢,虽然有很多最新统计包都是基于R编写的,真是对R是又爱又恨。SAS是不是会好点?但SAS不够开放。

9
菊花冰糖水 发表于 2018-3-1 14:51:08
jing09y 发表于 2017-3-20 12:58
我的1G的txt数据都加载不出来,正在找方法
可以试试 data.table的 fread 的方法,按说1G 应该 不会假装不出来的。当然要考虑本地内存的问题

10
菊花冰糖水 发表于 2018-3-1 14:53:47
公司大数据我之前一直使用 RJDBC 连接 HIVE 来读大数据。 和楼上说的一样,数据层面尽量使用 SQL 或者 hiveql来解决。 如果有一些小一点的10G 左右的,本地机器允许的情况下可以下载下来,使用 data.table 的 fread 来读一下试试,反正肯定比 data.frame 的要快很多。

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

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