闻智
2015-01-13 08:54
采纳率: 0%
浏览 3.2k

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

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

最终的展现效果类似于这种
图片说明

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

10条回答 默认 最新

  • danielinbiti 2015-01-13 09:06

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

    评论
    解决 无用
    打赏 举报
  • danielinbiti 2015-01-13 09:09
    评论
    解决 无用
    打赏 举报
  • 91program 2015-01-13 09:10

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

    评论
    解决 无用
    打赏 举报
  • oyljerry 2015-01-13 09:25

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

    评论
    解决 无用
    打赏 举报
  • 一曲忧伤_ 2015-01-13 09:56

    用fgets,每读取一行就统计

    评论
    解决 无用
    打赏 举报
  • linjzhou 2015-01-13 10:06

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

    评论
    解决 无用
    打赏 举报
  • shiter 2015-01-13 12:52

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

    评论
    解决 无用
    打赏 举报
  • Eleven 2015-01-14 08:17

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

    评论
    解决 无用
    打赏 举报
  • 勇往直前的胖子 2015-10-13 09:15

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

    评论
    解决 无用
    打赏 举报
  • 勇往直前的胖子 2015-10-13 09:16

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题