## TL;DR
Validate parquet files by metadata and sampled row groups: read each file's footer and row-group statistics first, validate schema across all files from metadata alone, and only read row groups from a sample of files for value checks. Pulling every file's data into the agent guarantees a timeout at lake scale.

```text
agent timed out when agent tried to validate parquet files in data lake
```

## Use this when
- The check or run fails with this symptom: the agent's parquet validation run times out across the lake's files.
- You are working on an agent validating parquet files in a data lake that times out and the failure repeats on the same data or configuration.
- You need the failing rows, rule, or stage isolated before changing thresholds or code.

## Not for this skill when
- Validating a handful of small parquet files, where direct reads are appropriate instead.
- The error text names a different tool, stage, or root cause. Match the verbatim error first and use that skill.

## Steps
1. List the files in scope with sizes and count, from the storage listing, before reading any file content. Verify: the file inventory and total size are known
2. Read footers and row-group statistics for all files and run schema and null-count checks from that metadata. Verify: metadata-level checks complete for every file
3. Select a deterministic sample of files and row groups for value-level validation and record the sampling rule. Verify: the sampled value checks run under a stated rule
4. Process files in a loop that stores each file's result before opening the next, so progress survives a timeout. Verify: per-file results are stored incrementally
5. Rerun the full validation and confirm it finishes with metadata coverage for all files and sampled value coverage as designed. Verify: the run completes with the designed coverage split

## Variant phrasings
### agent timed out validate parquet files data lake
The verbatim parquet-validation phrasing.
### parquet validation footer row group statistics metadata
The metadata phrasing for footer-driven checks.
### agent parquet lake validation sampled row groups
The sampling phrasing for value-level checks.

Compatibility: Agent validation of Parquet files in S3, GCS, or local data lakes with PyArrow or Spark

## Why it happens
Parquet was designed for metadata-driven validation: footers carry schemas and column statistics. Agents that ignore that and read full data per file multiply I/O by orders of magnitude, and the timeout arrives long before the genuinely useful checks finish.

## Edge cases / pitfalls
- Corrupt footers break the metadata path for that file only. Isolate and report them rather than failing the whole run.
- Keep the file inventory from the run; it is the scope evidence for what was actually validated.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_XunsrkWGcF-F0E5lVWSPsQ
