V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hechuanhua
V2EX  ›  程序员

在 1000 万行的文件里面找相同的行,并且记录行数和重复次数,用前端的代码实现

  •  1
     
  •   hechuanhua · 2020-03-26 11:32:37 +08:00 · 2672 次点击
    这是一个创建于 1490 天前的主题,其中的信息可能已经有所发展或是发生改变。

    咋搞?

    16 条回复    2020-03-26 15:48:54 +08:00
    Mithril
        1
    Mithril  
       2020-03-26 11:33:31 +08:00
    这文件传到前端确定不会撑爆用户浏览器?
    hechuanhua
        2
    hechuanhua  
    OP
       2020-03-26 11:34:37 +08:00
    @Mithril 不知道,题目就是这样的,可以多种代码实现,但是我希望是 JS,不知道能不能解决
    wednesdayco
        3
    wednesdayco  
       2020-03-26 11:36:32 +08:00
    老生常谈,先分片。再考虑找行的事情。
    VDimos
        4
    VDimos  
       2020-03-26 11:42:08 +08:00 via Android
    算哈希呗
    123444a
        5
    123444a  
       2020-03-26 11:51:33 +08:00 via Android   ❤️ 1
    bloom filter, 浏览器必备
    luckyrayyy
        6
    luckyrayyy  
       2020-03-26 11:57:40 +08:00
    大流量查重请认准 bloom filter
    asAnotherJack
        7
    asAnotherJack  
       2020-03-26 12:01:31 +08:00
    先遍历每一行按哈希拆成一万份文件,再对每一个文件找出重复的,最后整合到一起?
    robinlovemaggie
        8
    robinlovemaggie  
       2020-03-26 12:02:53 +08:00
    设计一款浏览器,自动实现文件实时逐行滚动读取,然后凭借一个强大的 AI 内核来完成记录分析,名字就叫:矩阵牌浏览器
    reus
        9
    reus  
       2020-03-26 12:03:21 +08:00
    for 循环不会写?
    xingyuc
        10
    xingyuc  
       2020-03-26 12:56:11 +08:00
    先搞定提出问题的人
    whatsmyip
        11
    whatsmyip  
       2020-03-26 12:58:04 +08:00   ❤️ 1
    分治,先哈希打散到文件,然后随便你怎么搞
    dremy
        12
    dremy  
       2020-03-26 13:17:50 +08:00 via iPhone
    纯 hash 费空间,1000w 的 int key 每个需要至少 3 个字节,一共 28MB,bloom filter 省大量空间,估计可以不到 100k
    raymanr
        13
    raymanr  
       2020-03-26 13:36:32 +08:00
    @Mithril 我觉着既然前提是浏览器不会撑爆, 那就干脆再加个一前万个 key 的字典吧..
    hetiansu5
        14
    hetiansu5  
       2020-03-26 15:08:47 +08:00
    @dremy 100K 也就 80W bit,全部占满了。
    crella
        15
    crella  
       2020-03-26 15:13:39 +08:00 via Android
    逐行算出哈希值,按哈希值的前几个字母,分类并存到各个文件,然后各个文件内在继续比较。
    0bit
        16
    0bit  
       2020-03-26 15:48:54 +08:00
    HyperLogLog
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5987 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 02:09 · PVG 10:09 · LAX 19:09 · JFK 22:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.