Apache Parquet 是一种开源的列式存储(Columnar Storage)文件格式,专为 Hadoop 生态系统中的大数据处理而设计。 Spark 之所以将其作为默认推荐格式,是因为 Parquet 的设计理念与 Spark 的分布式内存计算模型完美契合,能够极大地提升查询性能并降低存储成本。 以下是 Parquet 的核心特点以及 Spark 推荐使用它的详细原因: --- 一、 Parquet 文件格式的主要特点 1. 列式存储 (Columnar Storage) 传统行式存储 (如 CSV, JSON, Avro): 数据按行连续存储。读取时必须扫描整行数据,即使你只需要其中的一列。 Parquet 列式存储: 数据按列连续存储。同一列的数据放在一起。 优势: 如果你的查询只需要表中的 3 列(共 100 列),Parquet 只需要读取这 3 列的数据块,忽略其他 97 列,极大地减少了磁盘 I/O。 2. 高效的压缩率 由于同一列的数据类型是一致的(例如都是整数或都是字符串),Parquet 可以使用针对特定数据类型的轻量级编码算法(如 RLE 游程编码、...