【海量数据问题】两个超大文件求交集
参考:https://www.nowcoder.com/questionTerminal/cdd98d9efb2547b2bfab4ec96a63f22e
题目背景
给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url
主体思路
分治+hash
实现步骤
- 遍历文件A,对每个url使用
hash(url) % 1000
,根据所得的取值将url存储到1000个小文件中(a1,a2,…,a1000)(根据内存大小设定hash函数) - 遍历文件B,使用同样的hash函数将B中的url存储到1000个小文件中(b1,b2,…,b1000)(这样相同的url就会被映射到下标相同的小文件中)
- 读取文件a1,简历hash表,再读取文件b1,遍历其中的url,若url在hash表中出现,说明为两文件共有,存入结果中。
【海量数据问题】两个超大文件求交集相关推荐
- Linux 两个文件求交集、并集、差集
Linux 两个文件求交集.并集.差集 原文地址: Linux 两个文件求交集.并集.差集 (https://www.cnblogs.com/molong1208/p/5358509.html) 一. ...
- JAVA——两个List集合求交集、并集和差集(去重)模板
关注微信公众号:CodingTechWork,一起学习进步. 引言 经常遇到一些集合类之间的过滤数据.求合集之类的问题,在此以List为例,毕竟在数据库中取数据后,我们使用比较多的是List集合进 ...
- python 对中文文件求交集、并集、差集
核心内容: 1. set模块 intersection() ,union(), difference() 函数的使用 2. 文件格式:一行一词, uft-8 3. 解决中文以str读入后转成list ...
- python取得两个文件的交集、并集和差集。
1.两个txt文件都是一列数据,现在求这两个txt文件的交集.并集和差集. s1 = set(open('/data/test/id.list', 'r').readlines()) s2 = set ...
- Linux中uniq去重以及对两个文件取交集,并集,差集
uniq 前言 很多时候我们需要对数据去重,不管是少量数据还是大量数据,写代码进行去重终究没有使用系统功能直接操作文件方便,所以本文就介绍了一些关于uniq的使用方法 uniq单独使用 uniq配合s ...
- java 交集_Java大集合求交集的方法比较
两个List集合求交集想必学过Java的都知道用系统自带的retainAll()方法,但是在数据量比较大时,这个方法效率并不高,利用空余时间研究了几种数据量较大时求两个集合交集的办法.本文主要研究了J ...
- 如何求两个文件的交集、并集和差集?------sort和uniq闪亮登场
在日常开发中, 经常要对一些数据进行处理. 写个程序吧, 也可以实现, 但蛮麻烦的, 有些时候根本没有必要. 现在, a.txt和b.txt两个文件的数据都是逐行呈现的, 我们来说说如何求他们的交集. ...
- 求两个文件的交集、并集和差集 sort和uniq
在日常开发中, 经常要对一些数据进行处理. 写个程序吧, 也可以实现, 但蛮麻烦的, 有些时候根本没有必要. 现在, a.txt和b.txt两个文件的数据都是逐行呈现的, 我们来说说如何求他们的交集. ...
- 利用shell求取两个文件的交集、差集、并集等
求文件行数 cat a.txt | wc -l 交集 sort a.txt b.txt | uniq -d 并集 sort a.txt b.txt | uniq 差集 (1) a.txt-b.txt ...
最新文章
- Linux之make的用法讲解
- mysql忘记密码,如何重置密码
- vscode和anaconda结合的环境配置
- OpenKruise:阿里巴巴 双11 全链路应用的云原生部署基座
- 【十二省联考】春节十二响【贪心】【堆】【启发式合并】
- java日历类add方法_Java日历setMinimalDaysInFirstWeek()方法与示例
- 创建设计模式 - Builder设计模式
- iOS常用的存储方式介绍
- 精选|2019年1月R新包推荐
- android studio发包,androidstudio使用gradle打包配置详解.pdf
- java字符串不足后面补0,JAVA字符串格式化长度不足补0
- Qt/QML 遇到的小问题,一一记录,并尽量留下解决方法
- Windows Server2008 Server 安装Telnet服务
- java参数传递内存图解,探讨Java参数传递问题
- 消息队列之kafka在虚拟机安装使用与整合springboot详解教程
- 使用Python中的Button组件制作按钮
- GLSL vs HLSL vs Cg
- docker-error-at \\\“/dev/mqueue\\\“ caused \\\“no such device
- ssh2项目之自己想的购物网站
- Ubuntu 下谷歌浏览器、搜狗输入法的下载安装
热门文章
- 数据分析介绍及环境介绍
- C++ vector 相关函数简介
- 华为河图鸿蒙,继鸿蒙、麒麟后,华为又亮剑,新引擎河图曝光,抗衡谷歌又一招!...
- iOS11真机运行CoreML图像识别demo(Object C 版)
- C#学习 数据模块--DataTable类
- vivo Xplay(16GB) root教程_方法
- CSS磨砂玻璃穿透效果 filter: blur(4px);
- linux centos fedora rosegarden 播放 midi 音乐
- 关于iphone定位的基本知识
- 滤波器简介:FIR与IIR简介