NCA-ADS - Data Manipulation and Preparation - Section 1.7

Use Parquet storage for data.

Use Parquet as a columnar storage format to achieve efficient compression and fast predicate pushdown when reading large datasets. Recognise why Parquet outperforms CSV for repeated analytical reads and how it integrates with cuDF and Dask workflows.

Parquet

Practice question for this objective

Free sampleData Manipulation and Preparationmedium

An ETL job needs only 6 columns from a 90-column analytical table for a feature-engineering step. The team stores the table as Parquet and reads it with cuDF, requesting just those 6 columns. Compared with reading the same data from an equivalent row-oriented CSV, why does the columnar Parquet read transfer far less data from storage?

  • AParquet keeps the entire table compressed as a single block, so the reader decompresses everything once and then discards the columns it does not need after the data is already in GPU memory.
  • BParquet rows are indexed by a primary key, so the reader performs a key lookup that returns only the 6 columns for each row while ignoring the remaining columns.
  • CParquet stores each column contiguously, so the reader can use column projection to fetch only the byte ranges for the 6 requested columns and skip the other 84 entirely. Correct
  • DParquet caches the most frequently accessed columns in a header section, so repeated reads of the same 6 columns are served from that cache rather than from the full file body.
Parquet's columnar layout lets a reader project only the needed columns, reading their byte ranges and skipping the rest to cut I/O. Because Parquet writes each column as a contiguous chunk and records its offset in the file metadata, a reader asking for a subset of columns fetches only those byte ranges. A row-oriented CSV interleaves every column on each line, so the reader must scan all of them to extract any subset, forcing far more I/O.

Why A is wrong: This is plausible because Parquet does compress data, but it describes reading the whole file and discarding afterwards, which would not reduce the bytes read from storage; the saving comes from never reading the unwanted columns at all.

Why B is wrong: Parquet has no primary-key row index that drives column selection; the column-skipping benefit comes from the physical columnar layout, not from any per-row key lookup.

Why C is correct: Parquet's columnar layout places each column in its own contiguous region with metadata describing its location, so column projection reads only the requested columns' byte ranges and skips the rest, cutting I/O.

Why D is wrong: Parquet has no frequency-based column cache in its header; the metadata records column locations to enable projection, and the I/O saving applies on the first read, not only on repeated reads.

See more NCA-ADS practice questions, answers explained.

More in this domain

Back to all Data Manipulation and Preparation objectives, or the NCA-ADS cert hub.

Examworthy is not affiliated with or endorsed by NVIDIA. Original, blueprint-aligned practice material only.