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

跪求大佬指点! 10GB+数据查重最优解,哪种算法能扛住?

  •  
  •   shil949 · 103 天前 · 1418 次点击
    这是一个创建于 103 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前遇到一个大数据查重问题:需要处理 10GB 的二元序列数据,通过逐比特移动方式,查找 k 比特( k=64,65,..., 80 )重复序列出现的次数。尝试过逐比特移动的暴力方法,效率太低。求大佬支招推荐最优算法思路!

    12 条回复    2025-04-22 14:16:37 +08:00
    txx
        1
    txx  
       103 天前
    什么场景,数据大概长成什么样子? 10gb 感觉并不多啊
    shil949
        2
    shil949  
    OP
       103 天前
    @txx 就是随机数文件,判断生成的文件质量好不好,重码多不多,10 个 G 从比特角度来说就很大了
    yinmin
        3
    yinmin  
       103 天前 via iPhone
    不需要移动比特,K 比特转化成 byte[]+最后一个字节的 mask ,按照字节查找;然后 k 比特右移一位转化成 byte[]+第一个字节的 mask+最后一个字节的 mask ,按照字节查找;然后 k 比特再右一位… 查找 8 次即可

    考虑到数据缓存效率,8 组 byte+mask 查找可以同步推进查询。 (具体代码可以让 gpt 写)
    irrigate2554
        4
    irrigate2554  
       103 天前
    @shil949 如果只是要判断质量的话我感觉不如用某个压缩算法压缩后看压缩率,如果压缩率小就说明重复度低,信息熵大,随机质量好。
    shil949
        5
    shil949  
    OP
       103 天前
    @xausky 因为我们这个硬性指标就是要查出 K 重码的个数,你说的这个是通过另外一个纬度去判断质量好坏
    shil949
        6
    shil949  
    OP
       103 天前
    @yinmin 好的 感谢大佬支招,我 try 一下
    shil949
        7
    shil949  
    OP
       103 天前
    @yinmin 大佬,我看了你这个思路,原谅我才疏学浅,不是很懂,你前面说的不需要移动比特,后面又说要移动比特,为什么查找 8 次即可,按照字节查找是怎么查找思路呢
    harlen
        8
    harlen  
       103 天前
    一定长度的比特流重复的次数是吧,你把一定长度数据的组合固定(二禁止变固定长度进制)出来, 最后数据流就小了,然后抽象成 abcd 就变成了 多少进制字符串查重, 字符串查重那就简单了。
    shil949
        9
    shil949  
    OP
       103 天前
    @harlen 但是要考虑逐比特移动的,每次只移动一位构造出来的二进制序列在全局的重复个数呢,我理解你这个只是二进制转化成一种形式去查重而已
    yinmin
        10
    yinmin  
       103 天前 via iPhone
    @shil949 #7 移动的不是 10GB 的数据比特,是 K 比特,把 K 比特移动一位,然后按字节
    yinmin
        11
    yinmin  
       103 天前 via iPhone
    接#10 然后把移位后的 K 比特转化成 byte[]+第一个字节 mask+最后一个字节的 mask ,按字节去检索 10GB 数据

    (把我的回复发给 gpt4.1 或者 claude sonnet3.7 ,AI 会给出代码和详细实现细节的)
    shil949
        12
    shil949  
    OP
       103 天前
    @yinmin 好的 大佬
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2787 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:01 · PVG 22:01 · LAX 07:01 · JFK 10:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.