2013-07-15 21 views
1

我想知道是否有某種最佳方法來壓縮具有數百萬行重複/重複順序的csv文件。每行有4-5個元素。只有幾百個獨特的行,但是因爲它們每個都出現很多次,所以文件的總體大小很大。重複行的csv文件的最佳壓縮

我不熟悉的工具如gzip,bzip2的,等使用的詳細交易算法,但我沿着是否有任何的方式來指示該模式的gzip或bzip2的線條思考。例如,如果我有100萬行a,b,c,d,e,那麼在內部,這可以最佳地表示爲abcde的條目,並且如果它重複的次數是數字的計數(例如,重複2 M次)。這比壓縮算法試圖壓縮abcdeabcdeabcde ...更爲優化。我正在尋找一種通用的方法來優化案例,例如數據處於排序表格格式幷包含重複的行/元組。

在此先感謝。

回答

2

您應該創建自己的自定義格式。類似:

0 - >文件結束 1 - >行如下(最終的線自終止) 第2..N - >重複先前的行,很多時候

的數字可以是一個可變長度的整數,其中字節的高位爲零表示整數結束,其中一個表示存在更多字節。然後將每個字節的低7位連接起來形成整數。所以小重複計數(< 128)只需要一個字節。更長的字節需要更多的字節。只要你在兩端一致,你可以將它們連接成最不重要的第一個或最重要的第一個。

以這種方式刪除重複的行後,用gzip壓縮。