2013-07-15 2 views
1

순차적으로 반복/반복되는 수백만 개의 행이있는 csv 파일을 압축하는 최적의 방법이 있는지 알고 싶습니다. 각 행에는 4-5 개의 요소가 있습니다. 고유 한 행은 수백 개에 불과하지만 각 행이 너무 많이 나타나기 때문에 파일의 전체 크기가 큽니다.반복되는 행이있는 csv 파일의 최적 압축

나는 gzip, bzip2 등과 같은 도구에 사용 된 상세한 알고리즘에 익숙하지 않지만이 패턴의 gzip 또는 bzip2를 지시 할 수있는 방법이 있는지 생각해 보았습니다. 예를 들어, 1 백만 행의 a, b, c, d, e가 내부적으로 존재한다면 이것은 abcde에 대한 엔트리와 반복되는 횟수의 경우 숫자의 카운트로서 최적으로 표현 될 수 있습니다 (예 : abcde가 2 M 번 반복됨).). 이것은 압축 알고리즘이 abcdeabcdeabcde를 압축하려고 시도 할 때 말하기보다 최적 일 것입니다. 데이터를 정렬 된 표 형식으로 중복 된 행/튜플 들어있는 이러한 경우 suh 최적화 할 수있는 일반적인 용도로 찾고 있어요.

미리 감사드립니다.

답변

2

사용자 정의 형식을 직접 만들어야합니다. 뭔가 같이 :

0 - 파일> 끝 1 -> 행 2..n이 (줄 끝으로 자기 종료) 다음 -> 이전 행을 반복 많은 시간

number는 가변 길이 정수일 수 있습니다. 여기서 0 인 바이트의 상위 비트는 정수의 끝을 나타내며, 거기에 더 많은 바이트가 있음을 나타냅니다. 그런 다음 각 바이트의 하위 7 비트를 연결하여 정수로 만듭니다. 따라서 작은 반복 횟수 (< 128)는 단 1 바이트 만 사용합니다. 긴 바이트는 더 많은 바이트를 차지합니다. 양쪽 끝에서 일관성이있는 한 최하위 또는 최하위를 먼저 연결할 수 있습니다.

이렇게 반복 된 행을 제거한 다음 gzip으로 압축하십시오.

관련 문제