BigData / Apache Parquet Interview Questions
What are the supported data types in Parquet?
Parquet defines primitive types (physical storage) and logical types (semantic meaning layered on top).
Primitive types: BOOLEAN, INT32, INT64, INT96 (legacy timestamps), FLOAT, DOUBLE, BYTE_ARRAY, FIXED_LEN_BYTE_ARRAY.
Common logical types (annotations on primitives):
| Logical Type | Physical Mapping | Example |
|---|---|---|
| STRING | BYTE_ARRAY (UTF-8) | "London" |
| DATE | INT32 (days since epoch) | 2026-01-01 |
| TIMESTAMP_MILLIS | INT64 | 1704067200000 |
| DECIMAL | INT32/INT64/BYTE_ARRAY | 99.99 |
| LIST | Repeated group | [1, 2, 3] |
| MAP | Repeated key-value group | {k: v} |
| ENUM | BYTE_ARRAY | "ACTIVE" |
| UUID | FIXED_LEN_BYTE_ARRAY(16) | RFC-4122 |
Understanding the primitive/logical split matters when debugging type mismatch errors between Spark, Hive, and other readers.
More Related questions...