gpt4 book ai didi

linux - 具有重复行的 csv 文件的最佳压缩

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:23:20 26 4
gpt4 key购买 nike

我想知道是否有一些最佳方法来压缩具有数百万行重复/按顺序复制的 csv 文件。每行有 4-5 个元素。唯一的行只有几百行,但由于每一行都出现了很多次,所以文件的整体大小很大。

我不熟悉 gzip、bzip2 等工具中使用的详细算法,但我一直在思考是否有任何方法可以指示这种模式的 gzip 或 bzip2。例如,如果我有 100 万行 a、b、c、d、e,那么在内部这可以最佳地表示为 abcde 的条目和重复次数的计数(例如 abcde 重复 2 M 次) ).这比说压缩算法尝试压缩 abcdeabcdeabcde... 更优化。我正在寻找一种通用的方法来优化案例,例如数据采用排序表格格式并包含重复的行/元组的情况。

提前致谢。

最佳答案

您应该创建自己的自定义格式。像这样的东西:

0 -> 文件结尾1 -> 行跟随(自终止行尾)2..n -> 重复前一行多次

数字可以是一个变长整数,其中字节的高位为零表示整数结束,高位为1表示还有更多字节。然后将每个字节的低七位连接起来形成整数。如此小的重复计数(< 128)只需要一个字节。较长的需要更多字节。您可以先连接最不重要的,也可以先连接最重要的,只要您在两端保持一致即可。

一旦你用这种方式删除了重复的行,然后用 gzip 压缩。

关于linux - 具有重复行的 csv 文件的最佳压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17646695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com