跳转至内容
  • 社区首页
  • 版块
  • 最新
  • 标签
  • 热门
折叠

GitHub中文论坛

  1. 主页
  2. 版块
  3. 技术交流
  4. 十亿行大数据编程挑战,如何快速统计聚合 10亿行 text 文件

十亿行大数据编程挑战,如何快速统计聚合 10亿行 text 文件

已定时 已固定 已锁定 已移动 技术交流
1 帖子 1 发布者 12.2k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • mangoM 离线
    mangoM 离线
    mango
    写于 最后由 mango 编辑
    #1

    最近逛 GitHub Trending 发现一个有意思的编程挑战项目,
    项目地址 https://github.com/gunnarmorling/1brc。

    任务是仓库中的 measurements.txt 包含 10亿行气象站的温度数据,要求挑战者使用Java读取文件,计算每个气象站的最低、平均和最高温度值,并按气象站名称字母顺序排序后。

    数据样本,如下:<气象站>;<double: 测量值>

    Hamburg;12.0
    Bulawayo;8.9
    Palembang;38.8
    St. John's;15.2
    Cracow;12.6
    Bridgetown;26.9
    Istanbul;6.2
    Roseau;34.4
    Conakry;31.2
    Istanbul;23.0
    

    目前排名第一的只用了12秒时间
    19be90d3-9f31-434d-b48f-df1343e6bc02-1704470364468.png


    尝试下了,首先要安装 Java 21。
    1.运行 mvn clean verify 构建源码,
    2.执行./create_measurements.sh 1000000000,开始造数生成measurements.txt文件。好家伙跑了4分钟13个G,磁盘直接干满了。好吧,清理下垃圾腾点空间,继续。
    85a6b38d-5375-4a04-9f26-807086fa8b9e-1704470477652.png
    3.测试排名第一的 calculate_average_ebarlas.sh,我的笔记本耗时11秒完成

    空了再分析下原理~

    1 条回复 最后回复
    0
    回复
    • 在新帖中回复
    登录后回复
    • 从旧到新
    • 从新到旧
    • 最多赞同


    • 登录

    • 第一个帖子
      最后一个帖子
    0
    • 社区首页
    • 版块
    • 最新
    • 标签
    • 热门