前言

在我们处理大数据过程中,总会有找出重复数据的情况,上百亿条数据中找出重复的数据,看起来比登天还难,但Python告诉你几行代码轻松搞定这一切!不说废话,上干货!

生成72个BIN文件,每个BIN文件包含1亿条数据,每一条数据包括10字节原始数据和8字节哈希值。

1. BIN文件转为CSV文件

对原始72个BIN文件(每个BIN文件包含1亿条原始数据,原始数据=10字节数据+8字节哈希值)按照哈希值的第一个字节拆分,并写入256个CSV文件中。

def bin_to_csv(file_path, file_dir):f_list=[]csv_writer=[]#创建256个csv文件,文件名为0.csv到FF.csv。for i in range(0,256):f = os.path.join(file_dir,hex(i)[2:]+'.csv')f_list.append(open(f, 'w', encoding='utf-8', newline=''))#写入文件头number和hash值for i in range(0,256):csv_writer.append(csv.writer(f_list[i]))for i in range(0,256):csv_writer[i].writerow(["num","hash"])#循环读取原始数据文件,一共72个bin文件,每个文件1亿条数据(10字节原始数据+8字节哈希值),只提取8字节哈希值写入CSV文件for file in os.listdir(file_path):size = os.path.getsize(file_path+file) // 18with open(os.path.join(file_path, file), 'rb') as path:for i in range(size):#舍弃10字节数据tmp = path.read(10)#文件名file_name = path.read(1)data = file_name+path.read(7)csv_writer[int(file_name.hex(),16)].writerow([str(i),data.hex()])

运行结果:

拆分72亿条数据所需5个小时,所有72亿条数据会根据哈希值的第一个字节,写入文件名为00~FF的csv文件中。

2. 对每个CSV文件进行排序,并查重

对每个CSV文件进行排序,如果有重复哈希值‘num’写True,把‘num’为True的哈希值单独写入sorts.csv文件中。

def sorts_csv():for file in os.listdir("d:\\PRO\\split\\"):print("...正在排序文件:<"+file+">"+ctime())with open(os.path.join("d:\\PRO\\split\\",file),'r') as f:df = pd.read_csv(f)data = df.groupby('hash').count()>1data.to_csv("d:\\PRO\\sort\\sort"+file)tmp = data[data['num'] == True]tmp.to_csv("d:\\PRO\\sort\\sorts.csv",header=False, mode='a+')

运行结果:所有文件查重耗时9个小时,重复的哈希值写入sorts.csv文件中。

之后就是根据重复的哈希值查找原始数据,处理上百亿条数据总共不到一天时间完成。

Python对百亿条(100GB)数据进行查重相关推荐

  1. 每天近百亿条用户数据,携程大数据高并发应用架构涅槃

    互联网二次革命的移动互联网时代,如何吸引用户.留住用户并深入挖掘用户价值,在激烈的竞争中脱颖而出,是各大电商的重要课题.通过各类大数据对用户进行研究,以数据驱动产品是解决这个课题的主要手段,携程的大数 ...

  2. 4000GB、数百亿条个人信息泄露!大数据行业知名企业数据堂被查

    个人信息安全对我们每个人来说都很重要,但却面临着巨大的威胁. 知名大数据企业涉嫌侵犯数百亿条公民个人信息 7 月 8 日,据新华网"新华视点"报道,山东日前成功破获一起特大侵犯公民 ...

  3. 7月第2周业务风控关注 |涉嫌侵犯数百亿条公民个人信息 上市公司数据堂被公安一锅端...

    易盾业务风控周报每周呈报值得关注的安全技术和事件,包括但不限于内容安全.移动安全.业务安全和网络安全,帮助企业提高警惕,规避这些似小实大.影响业务健康发展的安全风险. 1.涉嫌侵犯数百亿条公民个人信息 ...

  4. [译] 使用 python 分析 14 亿条数据

    原文地址:Analysing 1.4 billion rows with python 原文作者:Steve Stagg 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold ...

  5. 百亿条数据复杂业务场景下通用归因模型设计实现

    1 背景 互联网流量应用的一个重要方面是计算各页面.入口的转化,深度洞察用户行为轨迹,数据驱动精细化运营,对一些大公司来说也是如此.如何建设公司级统一口径转化导流分析数据,满足多个业务对转化数据的需求 ...

  6. 年处理两万亿条环保数据,埃睿迪要做中国最懂环保的大数据公司

    随着国家<"十三五"生态环境保护规划>明确提出打好大气.水.土壤污染防治的三大战役,生态环境保护已经成为国家重点政策.今天,追求良好的环保生态已成为社会各界的共识,国家 ...

  7. 百亿用户行为数据,实现秒级转化分析

    用户行为分析是数据分析中非常重要的一项内容,在统计活跃用户,分析留存和转化率,改进产品体验.推动用户增长等领域有重要作用.美团点评每天收集的用户行为日志达到数百亿条,如何在海量数据集上实现对用户行为的 ...

  8. 每天数百亿用户行为数据,美团点评怎么实现秒级转化分析?

    导读 用户行为分析是数据分析中非常重要的一项内容,在统计活跃用户,分析留存和转化率,改进产品体验.推动用户增长等领域有重要作用.美团点评每天收集的用户行为日志达到数百亿条,如何在海量数据集上实现对用户 ...

  9. 超30亿条用户数据被窃取 BAT无一幸免

    微博莫名其妙关注了乱七八糟的营销号,QQ 号忽然加了一些不认识的好友及群聊,淘宝账号不知何时多了几个好友--如果你遇到过这些问题,说明你的账号密码不幸中招,已经被他人非法窃取. 近日,绍兴警方破获了一 ...

最新文章

  1. Java Junit
  2. nodejs开发——require与exports的使用
  3. 【HDU - 4781】Assignment For Princess(图上构造)
  4. XHTML CSS 常见问题和解决方案
  5. 高中信息技术必修一第一章思维导图_高中生物必修+选修思维导图最全归纳,从此高中生物无忧!...
  6. python多线程结束线程_Python线程– Python多线程
  7. 【AI视野·今日NLP 自然语言处理论文速览 第十七期】Thu, 1 Jul 2021
  8. 算法学习之贪心法(会议安排)
  9. 安卓-几种查看SHA1和MD5的方法
  10. 对计算机课程的意见和建议对老师,关于家长对老师的意见及建议
  11. Android侧滑返回分析和实现(不高仿微信),flutter项目实战
  12. python代码有for循环时没有报错但是不能运行
  13. JS 怎么控制 checkbox 选中的问题
  14. 布局云计算的下一个主场,紫光云引领行业云三大趋势
  15. WordPress简约响应式导航主题VIK
  16. html文字加描边效果,怎么用css给文字加描边?
  17. 【原】android【手机】屏幕适配解决方案,完美适配适配hdpi,xhdpi,xxhdpi的做法。
  18. 微信小程序保存图片到相册授权被拒绝后重新拉取授权
  19. Jmeter环境变量配置
  20. medoo连接mysql_PHP数据库框架Medoo1.6安装步骤

热门文章

  1. openmeetings(八)
  2. Notification消息提醒
  3. Java将图片处理成背景透明的圆形图片
  4. 超级表格教你怎样“零”成本制作签到系统
  5. 什么是Restful风格
  6. Android网络数据JSON解析使用总结
  7. 【MATLAB图像处理】傅里叶变换--幅度谱、相位谱、逆变换
  8. redis C接口hiredis 简单函数使用介绍
  9. JavaScript时间日期
  10. Vim内同时对多行增加或删除相同的内容