楼主: leonan_
5340 9

[问答] 怎样高效率的对一个含有千万行数据的.csv文件进行随机抽样 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

小学生

21%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
32 点
帖子
5
精华
0
在线时间
5 小时
注册时间
2018-9-14
最后登录
2018-9-25

楼主
leonan_ 发表于 2018-9-14 15:34:22 |AI写论文
10论坛币
最近遇到一个需求,需要在一个包含大量数据的.csv文件中随机抽样N条数据,由于我只是新人小白,看到R可以解决随机抽样问题,就研究了一些,但是当测试大数据文件比如3G左右的CSV文件时,效率并不是很高,甚至经常卡死。求教可以高效率处理此类问题的办法。
这是我的代码Demo
  1. rm(list = ls())   #清空工作空间
  2. setwd('D:/')     #设置工作目录
  3. alldata <- read.csv('testCsv.csv', header = T)   #读取文件   
  4. nrow(alldata)     #统计行   -----这一行开始就会卡死。
  5. data_test <- alldata[sample(nrow(alldata), 20), ]    #随机抽样
  6. write.csv(data_test,'result_testCsv.csv', row.names = F)   #写出数据
复制代码

求教有没有高效的方法函数可以使用呢?最好有详细的代码及注释!

最佳答案

铁锷未残 查看完整内容

尝试高性包,data.table.
关键词:随机抽样 高效率 DEMO list 工作目录

沙发
铁锷未残 学生认证  发表于 2018-9-14 15:34:23
尝试高性包,data.table.
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

藤椅
wtc#sofa 在职认证  发表于 2018-9-14 15:48:14
统计行这一步是必须的么?

板凳
wtc#sofa 在职认证  发表于 2018-9-14 15:50:04
是否可以用这种办法:找一列没有空行的数据,做计数(这个计数就是行数啊),数据范围不这么大只是一列的话会不会不会卡死?
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

报纸
leonan_ 发表于 2018-9-14 15:54:29
wtc#sofa 发表于 2018-9-14 15:48
统计行这一步是必须的么?
统计这一行不是必须的,但是到这一行就卡住了

地板
leonan_ 发表于 2018-9-14 15:55:24
wtc#sofa 发表于 2018-9-14 15:50
是否可以用这种办法:找一列没有空行的数据,做计数(这个计数就是行数啊),数据范围不这么大只是一列的话 ...
其实主要的目的是抽样后输出文件,统计只是我加了为了测试

7
jinkelazzz 发表于 2018-9-14 16:34:54
参考一下这个
https://blog.csdn.net/wqdwin/article/details/76204694
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

8
leonan_ 发表于 2018-9-14 17:42:11
jinkelazzz 发表于 2018-9-14 16:34
参考一下这个
https://blog.csdn.net/wqdwin/article/details/76204694
看了以后不知所云,也没说具体怎么用。。

9
leonan_ 发表于 2018-9-14 17:44:42
铁锷未残 发表于 2018-9-14 16:39
尝试高性包,data.table.
恩,用了,效率挺高的,不过又遇到了新问题。
我们的背景是用java做,通过Rserve完成连接,但是可悲的是,使用R.exe可以执行的R脚本文件,Rserve连接后就不能使用,估计是文件太大,内存影响。
实际遇到的问题太过复杂,哎。
不过谢谢建议!

10
jgchen1966 发表于 2018-9-15 20:18:03
参考“What is H2O?”之贴
https://bbs.pinggu.org/thread-4756566-1-1.html

已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

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

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