社区
C#
帖子详情
10+G的超大文本如何整行去重
橘子皮...
2019-07-18 03:45:15
单个txt,10G左右,如果整行去重
比如
aaaa
1111
aaaa
去重后
aaaa
1111
用什么思路比较好,我用LOAD DATA直接试图把txt导入mysql,结果执行一半跳出错误,这么大文档不知道怎么弄了
循环处理用List的话,貌似2000w就内存溢出了
...全文
804
6
打赏
收藏
10+G的超大文本如何整行去重
单个txt,10G左右,如果整行去重 比如 aaaa 1111 aaaa 去重后 aaaa 1111 用什么思路比较好,我用LOAD DATA直接试图把txt导入mysql,结果执行一半跳出错误,这么大文档不知道怎么弄了 循环处理用List的话,貌似2000w就内存溢出了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhengzizhi
2019-12-15
打赏
举报
回复
TXT文本去重 TXT文本合并 TXT文件求并集
https://blog.csdn.net/zhengzizhi/article/details/72615021
测试数据大小:20亿行130GB的数据只需60分钟 平均去重速度:2000000000(行) ÷ 3600(秒) = 555555(行/秒)≈55万行/秒
凌晨4点5杀老大爷
2019-07-18
打赏
举报
回复
参考 https://blog.csdn.net/Asa_Jim/article/details/86663414
橘子皮...
2019-07-18
打赏
举报
回复
好的,我来研究研究
wanghui0380
2019-07-18
打赏
举报
回复
基本上这就是传统的跳跃表+Hash表的配合 一致性hash------类似计算跳跃表-------先跳到一个大体的位置 然后在查hash表数据定位-------------hash定位,是直接定位模式,无需挨个查找。 当然这里我放了hash文件,这个主要是因为既然是内存扛不住,自然的目标就是把内存IO放到磁盘IO上 总体上就是,数据---------散列一致性hash--------根据一致性hash直接跳跃到对应的hash文件------在根据Hash值转换成文件对应的寻址(这个需要写个函数,比如hash值对应的 寻址地址是xxxxx,根据文件个数,我们可以简单做个求模,在根据模值*条数据预留的长度,直接定位到文件地址)---------去该文件地址直接读取固定长度数据,判定一下有没写东西进去
wanghui0380
2019-07-18
打赏
举报
回复
10G很明显不可一次读到内存。
所以很明显是一行一行读。(可以并行分块读,不过这是后续的),我们先来解决内存的问题把
很明显我们不太可能把数据放到内存,我们只会用hashtable去保留判定特征。同时采用hash文件来保存临时信息。(当然这个会有多个文件,那么我们可以采用一致性hash,把东西散到多个hash文件里,加上hash文件可以直接定位判定,这样内存里实际没多少东西,一致性hash可以知道我去那个hash文件查找,而hash文件查找又能瞬间知道有没有保存过数据)
娃都会打酱油了
2019-07-18
打赏
举报
回复
https://www.cnblogs.com/Damos/p/bigText.html
这样读取,然后依赖数据库的唯一性约束去重吧
VI&VIM常用命令及快捷键
通过这些命令,用户能够实现对
文本
的精确控制,无论是简单的
文本
修改还是复杂的文档编辑,VI和VIM都能够胜任。此外,VI和VIM还支持丰富的插件和自定义设置,使其成为专业开发者和系统管理员的首选
文本
编辑器。
生产环境awk最佳实践
这里,`length($1)`计算了第一列的长度,如果这个长度等于4,则打印出
整行
记录。此外,还可以使用一个变量存储长度,再进行条件判断: ```bash [root@liuhx~]#awk '{len=length($1);if(len=="4"){print$0}}' test ...
高效
文本
文件
去重
工具实战应用与技术解析
传统加密哈希(如 MD5、SHA-1)虽抗碰撞强,但计算成本过高,不适合高频
去重
场景。现代非加密哈希函数(如 xxHash、MurmurHash)专为高速校验设计,速度可达 MD5 的 5–
10
倍,且分布均匀,适合用于布隆过滤器或哈希...
redis实现slowlog持久化转储
shell在处理
文本
文件时,一般都是按某些条件逐行
去重
,面对这种多行整体
去重
的场景,很自然想到行转列,将每个条目的多行转换成一行,然后在
整行
去重
就容易了。#将含有“4) +1)”的行中的“4)”替换为两个空格。#在...
文本
编辑器快捷键
文本
编辑器常用快捷键(notepad++或editplus) Notepad++快捷键 1:文件操作 Ctrl+O 打开文件 ctrl+N 新建文件 Ctrl+S 保存文件 ctrl+alt+s 文件另存为 Ctrl+shift+s 保存所有打开文件 alt+...
C#
111,130
社区成员
642,542
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章