Parquet checkpointing adds null dictionary entries and rejects mixed JSON arrays
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
Hướng nghiên cứu
Start by running the attached repro.py scripts with and without --encode, then inspect the Parquet checkpoint writer and its read path. The issue reports failures for dictionaries and mixed JSON arrays in custom-column and structured-column outputs; identify where checkpoint serialization handles these values. Done means both cases round-trip with absent keys distinct from explicit nulls and mixed arrays stored successfully.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Priority Level
Medium (Annoying but has workaround)
Describe the bug
Data Designer 0.9.3 can alter dictionaries during Parquet storage and fail to store schema-valid mixed arrays.
Arrow inference treats dictionaries as structs, merging their keys and adding null values for absent entries:
Input:
{"fields": {"alpha": 1}}
{"fields": {"beta": 2}}
Restored:
{"fields": {"alpha": 1, "beta": null}}
{"fields": {"alpha": null, "beta": 2}}
This changes the data’s meaning by making absent keys indistinguishable from explicit null values.
Mixed arrays such as [1, "two", true, null] fail checkpoint writing with ArrowInvalid:
Could not convert 'two' with type str: tried to convert to int64
These problems affect custom-column outputs. They also occur with schema-declared structured outputs after isolating the separate parser bug in #1043.
Steps/Code to reproduce bug
The attached scripts use deterministic inputs and require no credentials or model calls.
Reproduce through custom columns, then verify the JSON-text workaround:
uv run --script repro.py
uv run --script repro.py --encode
Reproduce through LLMStructuredColumnConfig:
uv run --script repro_structured.py --case mixed-array
uv run --script repro_structured.py --case typed-map --respect-schema
uv run --script repro_structured.py --case json-map --respect-schema
repro_structured.py mocks model generation while retaining DD’s actual parsing, structured-column generation, and storage. It tests both Pydantic and JSON Schema declarations.
--respect-schema diagnostically disables the parser’s additionalProperties rewrite to isolate storage behavior. It does not change the storage writer. The mixed-array case reproduces without this diagnostic.
Tested with:
data-designer==0.9.3
pydantic==2.14.1
pandas==2.3.3
pyarrow==24.0.0
Expected behavior
Supported dictionary and flexible JSON values should retain their contents through checkpoint writes and reads. Absent dictionary keys must remain distinguishable from explicit nulls, and schema-valid mixed arrays should be stored successfully
Agent Diagnostic / Prior Investigation
Bug was encountered when making changes to a DD pipeline. Issue content and reproduction scripts are AI generated and human reviewed.
Fixed records round-trip correctly. Explicitly encoding whole custom-column payloads as JSON text preserves dictionaries and mixed arrays. Disabling the separate parser rewrite does not resolve the storage failures.
Additional context
Split from #1043, which tracks valid dictionary entries being removed during parsing.
Checklist
- I reproduced this issue or provided a minimal example
- I searched the docs/issues myself, or had my agent do so
- If I used an agent, I included its diagnostics above
- Ngôn ngữ chính
- Python
- Star
- 2.4k
- Fork
- 234
- Merge trung bình
- 22 giờ 5 phút
- Pull request đã merge (30 ngày)
- 70
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của NVIDIA-NeMo/DataDesigner
-
`ValidationColumnConfig` misaligns rows and discards the whole batch after an upstream row is droppedCó thể đã có người làm @suryapilla đã nhận 1 ngày trước. Đang mởtriaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
NVIDIA-NeMo/DataDesigner#1073 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
docs: required_columns description is incomplete for LLM and multimodal columnsCó thể đã có người làm @rksharma-owg đã nhận 7 ngày trước. Đang mởbug triaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
NVIDIA-NeMo/DataDesigner#1002 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enforce \from future import annotations` via ruff FA102 rule`Có thể đã có người làm @chethanuk đã nhận 42 ngày trước. Đang mởtask
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
NVIDIA-NeMo/DataDesigner#760 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Support external model providers in Slurm runsCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
NVIDIA-NeMo/DataDesigner#1079 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Children forked after a run generate identical sampler dataCó thể đã có người làm @binaryaaron đã nhận 1 ngày trước. Đang mởbug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
NVIDIA-NeMo/DataDesigner#1076 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của NVIDIA-NeMo/DataDesigner
Issue tương tự
-
good first issue infrastructure
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
kuznia-rdzeni/coreblocks#1135 ·
-
good first issue server
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation priority: high
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
a-lex-s/mealie-telegram-bot#54 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
type/test
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
SaltedTan/virgil-language-server#218 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
btclib-org/btclib-wallet#541 ·
Maintainer thường phản hồi trong vòng 1 ngày