社区
C#
帖子详情
10+G的超大文本如何整行去重
橘子皮...
2019-07-18 03:45:15
单个txt,10G左右,如果整行去重
比如
aaaa
1111
aaaa
去重后
aaaa
1111
用什么思路比较好,我用LOAD DATA直接试图把txt导入mysql,结果执行一半跳出错误,这么大文档不知道怎么弄了
循环处理用List的话,貌似2000w就内存溢出了
...全文
658
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
这样读取,然后依赖数据库的唯一性约束去重吧
零基础Linux命令详细案例讲解课程(第3季)--
文本
搜索和
文本
处理
课程亮点: 笔记加案例详细讲解Linux知识!!!提供详细的笔记作为辅助工具,200多条笔记帮助学员快速掌握Linux命令行150多个知识点 课程内容:
文本
搜索:通过指定搜索范围、指定匹配范围、指定字符集,再结合正则表达式可进行准确内容的搜索,学习本内容后学员可根据实际业务场景设置相关搜索参数
文本
处理:行或者指定字段排序、
去重
复行、
文本
剪切、
文本
合并、文件比较、字符替换,学习本内容后学员可熟练掌握
文本
处理相关命令课程特色: 笔记Linux命令:用200条笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力笔记标题采用关键字标识法,帮助学员更加容易记住知识点笔记以超链接形式让知识点关联起来,形式知识体系采用先概念后实例再应用方式,知识点深入浅出提供授课内容笔记作为课后复习以及工作备查工具 部分图标(电脑PC端查看):
redis实现slowlog持久化转储
shell在处理
文本
文件时,一般都是按某些条件逐行
去重
,面对这种多行整体
去重
的场景,很自然想到行转列,将每个条目的多行转换成一行,然后在
整行
去重
就容易了。#将含有“4) +1)”的行中的“4)”替换为两个空格。#在每个包含“1) (integer)”的行初始化变量s,然后将后续行拼接到s中。#将含有“1) (integer)”的行的第三列替换为指定的日期时间格式,并去掉前置空格。#将含有“1) (integer)”的行的第一列置空,并去掉前置空格。#将含有“3) (integer)”的行去掉前置空格。
sublime快捷键
Ctrl+D 选词 (反复按快捷键,即可继续向下同时选中下一个相同的
文本
进行同时编辑) Ctrl+G 跳转到相应的行 Ctrl+K+B 开启/关闭侧边栏 Ctrl+L 选择
整行
(按住-继续选择下行) Ctrl+Y 恢复撤销 Ctrl+Tab 当前窗口中的标签页切换 Ctrl+Enter 插入行后(快速换行) Ctrl+Shift+D 复制光标所在
整行
,插入在该行之前 C
文本
三剑客之awk命令
awk
文本
三剑客
去重
统计行数
利用Shell脚本进行文件内容
去重
最近在处理文件的时候,遇到文件内容存在大量重复项的情况,很显然需要文件内容
去重
。因为使用的是Python,本来想要找找Python文件内容
去重
的方法,但是看到的基本利用Set或者List等方法(还没来得及逐一验证)。后来,找到一个利用Shell脚本写的文件内容
去重
,用了一下觉得很赞,在这里深入的研究一下,也算是对Shell了解和熟悉一下。 shell脚本如下所示: #!/bin/b
C#
110,530
社区成员
642,572
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章