25,000のfloat(,
区切られた)を含むファイルがあり、そのような行は約100Kあります。ファイルの行は次のようになります。
1689.97,-9643.39,-82082.1,9776.09,-33974.84,-67247.38,32997.34,72811.53,31642.87,-949.6,9340.68,-85854.48,-17705.36,187.74,-3002.6,-35812.21,37382.32,22770.78,40893.09,45743.99,-6500.92,26243.85,13975.95,0,56669.47,-25865.36,-17066.78,26788.57,0,-36554.86,-3687.19,18933.93
2つの部分からなる質問があります。
- パフォーマンスにあまり影響を与えずにデータを効率的に圧縮する方法(JavaまたはPython)はありますか?圧縮は1日に1回行われますが、データはかなり頻繁に読み取る必要があります。
- データを圧縮形式で操作できますか?たとえば、解凍せずに最初の10行の最初の10列を集約したいと思います。そうすれば、圧縮データを頻繁に読み取ることを心配する必要がありません。課題の1つは、25,000文字列を追加のためにfloatに変換することです。
私は見てきましたgzip
、zcat
そしてそれらは良い選択肢です。Java/Python
しかし、データを保存し、解凍せずに読み取りを実行するための圧縮またはシリアル化アルゴリズムを見つけたかったのです。