c-请教一个关于海量数据的大文件统计问题

问题描述

请教一个关于海量数据的大文件统计问题

有一个大文件 20多G 里面一行一行的(csv格式,逗号隔开的那种)都是订单信息 主要的有用户id 商户id 还有就是订单id 需要求出的就是求出“每个商户”“每天的累计支付用户”和“每天的新增支付用户数”
PS:
最好能贴出代码,
最好可以用C或C++,php也ok,
还有就是内存不是很大 需要考虑内存原因
我需要求出的“累计支付用户”和“新增支付用户数”的uid是需要去除重复的

最终的展现效果类似于这种

解决方案

如果windows平台,用内存映射最快,当然用随机读取也行。
linux平台,用随机读取文件统计吧

解决方案二:

可以参考一下 http://blog.csdn.net/zhxue123/article/details/5114525

解决方案三:

建议以天为单位建议索引, 这样访问的数据量就不会太大

解决方案四:

用fgets,每读取一行就统计

解决方案五:

将大文件按行读取根据关键信息拆分成小文件文件,比如每天一个文件,(每个用户id+商户一个文件)(用户id+商户+每天一个文件) 拆成内存一次性能处理就行, 然后在处理小文件

解决方案六:

我这有一个类,你一点一点读,改一改估计就行:
http://blog.csdn.net/wangyaninglm/article/details/42682937

解决方案七:

处理大文件还是考虑是用内存文件映射的方式吧,分块处理

解决方案八:

有考虑用hadoop或者spark这些吗?如果这种20G的文件分析操作经常发生的话

解决方案九:

有考虑用hadoop或者spark这些吗?如果这种20G的文件分析操作经常发生的话

解决方案十:

按行读取文件,一行行读取处理
fgets()

时间: 2024-11-03 21:06:41

c-请教一个关于海量数据的大文件统计问题的相关文章

请教一个用程序读PST文件的问题

问题描述 帮忙问一下读PST文件的问题:我现在有多个PST文件,A.pst,B.pst,...X.pst,都超过1G,可否有一种工具能够把这多个文件集合起来,当用户查看该文件时,对用户层面来说他看到的只有一个文件,而且能够以发件人或者其他方式对所有的邮件进行排序.请问各位要怎么开发啊?用哪种语言比较好呢?请大家多多指导.

请教一个服务端读取pdf文件,并由客户端处理的问题。

问题描述 现状:一个基于B/S结构的程序,客户端通过IE浏览器打开存放在服务端的pdf文件,直接浏览,不需要下载到本地.浏览过后,点击页面的一个"确认"按钮,通知服务端已看过此pdf文件.问题:1.客户端通过IE打开服务器端的pdf文件,是否会在客户端的操作系统中有个临时文件夹来存放此pdf文件的缓存文件?如有的话,此文件的存放位置在哪?win7vistaxp这些操作系统是否存放在相同的目录中?如何获取此缓存文件?此缓存文件是否会自动删除,还是一直保留? 解决方案 解决方案二:PDF嵌

请教一个.net中对.txt文件操作的问题,请高手帮忙看一下!!

问题描述 下载推荐人配置文件introduce.txt,保存神州游游戏大厅的神州游游戏目录中.通过这台机器注册的所有游戏用户,您的帐号将成为默认推荐人.配置文件introduce.txt的保存路径:假设您的唐人游游戏大厅默认安装在C:ProgramFiles神州游游戏目录下,则推荐人配置文件为:C:ProgramFiles神州游游戏introduce.txt这个功能怎么实现呀,高手帮忙看一下呀,急呀!!! 解决方案 解决方案二:???解决方案三:下载推荐人配置文件introduce.txt,保存

html+ajax实现上传大文件功能

大家都知道php上传文件有限制,如果没有修改过php.ini文件的话,默认的上传大小限制为2M,那么该如何上传大文件了,比如说上传一个1G多的大文件,可以使用大文件切割上传的方式来解决. 何为大文件切割上传? 原理:利用HTML5的新特性,将文件内容切割成分段的二进制信息,然后每次向服务器上传一段,而服务器,只需要把我们每次上传的二进制信息整合存储到一个文件中,那么最后这个文件就是所上传的文件. 由于php.ini默认的上传大小为2M,如果每批都上传2M,我测试的时候时间比较长,这里我将其限制大

rsync增量传输大文件优化技巧

RSync服务器配置 确保安装了rsync 配置/etc/rsyncd.conf,一般情况下安装了rsync不会自动创建rsyncd.conf,配置如下  代码如下 复制代码 # Rsync configuration file secrets file = /etc/rsyncd.secrets #认证用户名和密码文件的名称和位置 motd file = /etc/rsyncd.motd #欢迎文件,可自己编辑 read>list = yes uid = root gid = root use

php 利用txt文件统计网页浏览次数

这是一个php教程 利用txt文件统计网页浏览次数 js调用方法哦,就是用javascript教程调用php 文件并且php文件用js输出的格式来处理哦. <?PHP $countfile = "num.txt"; //定义计数器写入的文件是当前目录下count.txt,然后我们应当测试该文件能否打开 if (($fp = fopen($countfile, "r+")) == false) { //用读写模式打开文件,若不能打开就退出  printf (&q

java-小弟想请教一个问题.对于大神们来说很简单

问题描述 小弟想请教一个问题.对于大神们来说很简单 小弟的这个程序很简单 但是对于小弟来说实在是太难了 本来前面的已经实现了,但是算总分的时候第二个人的成绩总是要和第一个成绩相加,这是程序这是运行后的结果就想问问大神怎么做把两个人的总分成绩分开 求大神帮帮忙哈 解决方案 zhongfen[i]=bianliang; 下一行加上 bianliang=0; 解决方案二: 变量 bianliang 在每次输入学生姓名是清零.

如何在azure网站中快速删除一个大文件夹

问题描述 如何在azure网站中快速删除一个大文件夹 我在Azure网站中部署了个我的website的应用,我现在想删去里面一个文件夹,大小大概有3G,我尝试使用ftp去做,但是速度太慢了,有们有什么快速的方法. 解决方案 Hi, 我们可以通过kudu这个工具快速的删除一个文件夹,我们首先去Azure网站的仪表盘下载发布配置文件,具体如下图: 打开配置文件找出用户名密码,然后我们打开IE输入https://***.scm.chinacloudsites.cn/, ***是你的网站名称,输入上面记

大神们,请教一个关于asp.net MVC3 自定义404问题 运行后报500

问题描述 大神们,请教一个关于asp.net MVC3 自定义404问题 运行后报500 不知道是不是配置的过程中出错? 解决方案 应该是没有找到你的视图.你直接访问/home/error404是什么提示? 解决方案二: 应该是没有找到你的视图 解决方案三: Asp.net MVC 自定义RouteHandler