remove parquet output support
Nate has given up on getting wikiq to output parquet directly because it
makes too many unpredictable large memory allocations. The workflow now
outputs JSONL in a single pass and then uses spark (wikiq_spark) to index
it as parquet in a second pass.
Remove the parquet output path along with the machinery that existed only
to support it: checkpoint files, resume temp-file merging, namespace
partitioning, and file rotation (--partition-namespaces,
--max-revisions-per-file). Resume support remains for JSONL output, where
the resume point is derived from the last complete line of the output
file. Also remove the parquet tests and baseline files.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit 72a8851373)
This commit is contained in:
@@ -440,7 +440,7 @@ def test_external_links_only():
|
||||
# Verify citations column does NOT exist
|
||||
assert "citations" not in test.columns, "citations column should NOT exist when only --external-links is used"
|
||||
|
||||
# Verify column has list/array type (pandas reads parquet lists as numpy arrays)
|
||||
# Verify column has list/array type (pandas reads pyarrow lists as numpy arrays)
|
||||
assert test["external_links"].apply(lambda x: x is None or hasattr(x, '__len__')).all(), \
|
||||
"external_links should be a list/array type or None"
|
||||
|
||||
@@ -495,7 +495,7 @@ def test_citations_only():
|
||||
# Verify external_links column does NOT exist
|
||||
assert "external_links" not in test.columns, "external_links column should NOT exist when only --citations is used"
|
||||
|
||||
# Verify column has list/array type (pandas reads parquet lists as numpy arrays)
|
||||
# Verify column has list/array type (pandas reads pyarrow lists as numpy arrays)
|
||||
assert test["citations"].apply(lambda x: x is None or hasattr(x, '__len__')).all(), \
|
||||
"citations should be a list/array type or None"
|
||||
|
||||
@@ -545,7 +545,7 @@ def test_external_links_and_citations():
|
||||
assert "external_links" in test.columns, "external_links column should exist"
|
||||
assert "citations" in test.columns, "citations column should exist"
|
||||
|
||||
# Verify both columns have list/array types (pandas reads parquet lists as numpy arrays)
|
||||
# Verify both columns have list/array types (pandas reads pyarrow lists as numpy arrays)
|
||||
assert test["external_links"].apply(lambda x: x is None or hasattr(x, '__len__')).all(), \
|
||||
"external_links should be a list/array type or None"
|
||||
assert test["citations"].apply(lambda x: x is None or hasattr(x, '__len__')).all(), \
|
||||
@@ -753,37 +753,4 @@ def test_headings():
|
||||
print(f"Headings test passed! {len(test)} rows processed")
|
||||
|
||||
|
||||
def test_parquet_output():
|
||||
"""Test that Parquet output format works correctly."""
|
||||
tester = WikiqTester(SAILORMOON, "parquet_output", in_compression="7z", out_format="parquet")
|
||||
|
||||
try:
|
||||
tester.call_wikiq("--fandom-2020")
|
||||
except subprocess.CalledProcessError as exc:
|
||||
pytest.fail(exc.stderr.decode("utf8"))
|
||||
|
||||
# Verify output file exists
|
||||
assert os.path.exists(tester.output), f"Parquet output file should exist at {tester.output}"
|
||||
|
||||
# Read and verify content
|
||||
test = pd.read_parquet(tester.output)
|
||||
|
||||
# Verify expected columns exist
|
||||
assert "revid" in test.columns
|
||||
assert "articleid" in test.columns
|
||||
assert "title" in test.columns
|
||||
assert "namespace" in test.columns
|
||||
|
||||
# Verify row count matches JSONL output
|
||||
tester_jsonl = WikiqTester(SAILORMOON, "parquet_compare", in_compression="7z", out_format="jsonl")
|
||||
try:
|
||||
tester_jsonl.call_wikiq("--fandom-2020")
|
||||
except subprocess.CalledProcessError as exc:
|
||||
pytest.fail(exc.stderr.decode("utf8"))
|
||||
|
||||
test_jsonl = pd.read_json(tester_jsonl.output, lines=True)
|
||||
assert len(test) == len(test_jsonl), f"Parquet and JSONL should have same row count: {len(test)} vs {len(test_jsonl)}"
|
||||
|
||||
print(f"Parquet output test passed! {len(test)} rows")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user