Multiframe ZSTD file: how to jump to and stream the second file?
まだ誰も着手していません。
評価
調査の方向性
まず Python zstandard API と、提供されている compressed_offset、uncompressed_offset、compressed_size メタデータを確認します。呼び出し元が chunk_1.ndjson から開始し、フレーム全体を読み込まずに解凍された行をストリーミングできる方法を検証してから、確認済みの使用方法とその完了条件を文書化します。
索引モデルが issue の本文から書いたものです。
説明
TL;DR: This is not about bugs of ZSTD but about how to take advantage of its feature:
I compress two ndjson files into a multiframe ZST file where each ndjson is compressed into a frame. I have the following metadata meta_data (as a list) of the ZST file:
import zstandard as zstd
from pathlib import Path
input_file = r"E:\Personal projects\tmp\test.zst"
input_file = Path(output_file)
meta_data = [{'name' : 'chunk_0.ndjson',
'uncompressed_size' : 2147473321,
'compressed_offset' : 0,
'uncompressed_offset' : 0,
'compressed_size' : 175631248},
{'name' : 'chunk_1.ndjson',
'uncompressed_size' : 2147473321,
'compressed_offset' : 175631248,
'uncompressed_offset' : 2147473321,
'compressed_size' : 175631248}]
In Python, how can we leverage the above meta_data to seek to chunk_1.ndjson, start decompressing, and stream it line-by-line? In this way, we don't need to
- decompress
chunk_0.ndjson, - load the whole compressed
chunk_1.ndjsoninto the memory.
Thank your for your help.
- 主要言語
- C
- スター
- 28.1k
- フォーク
- 2.7k
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
facebook/zstd のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
cmake: AddZstdCompilationFlags still depends on C++ after #4357対応中かも @Tyagiquamar が 29 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
ZSTD_compressSequencesAndLiterals() does not enforce its documented litCapacity >= litSize + 8 contract — the implemented check is 8 bytes weaker than the API documentation, its own error message, and the introducing commit対応中かも @KSAGlory が 49 日前に担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
-
seekable_format warning with -DNDEBUG: potential uninitialised local variable newOffset used対応中かも @i098 が 18 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
ly05010419/MacNativeGames#1420 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
JustAResearcher/gpu-unlock-ada#124 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
swoole/swoole-cli#1092 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
-
inflate: total_in uses plain += on c_ulong (32-bit on Windows), panics in debug for streams > 4 GiBオープン
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
trifectatechfoundation/zlib-rs#570 · コメント 1 件 ·