-
- Downloads
[SPARK-8848] [SQL] Refactors Parquet write path to follow parquet-format
This PR refactors Parquet write path to follow parquet-format spec. It's a successor of PR #7679, but with less non-essential changes. Major changes include: 1. Replaces `RowWriteSupport` and `MutableRowWriteSupport` with `CatalystWriteSupport` - Writes Parquet data using standard layout defined in parquet-format Specifically, we are now writing ... - ... arrays and maps in standard 3-level structure with proper annotations and field names - ... decimals as `INT32` and `INT64` whenever possible, and taking `FIXED_LEN_BYTE_ARRAY` as the final fallback - Supports legacy mode which is compatible with Spark 1.4 and prior versions The legacy mode is by default off, and can be turned on by flipping SQL option `spark.sql.parquet.writeLegacyFormat` to `true`. - Eliminates per value data type dispatching costs via prebuilt composed writer functions 1. Cleans up the last pieces of old Parquet support code As pointed out by rxin previously, we probably want to rename all those `Catalyst*` Parquet classes to `Parquet*` for clarity. But I'd like to do this in a follow-up PR to minimize code review noises in this one. Author: Cheng Lian <lian@databricks.com> Closes #8988 from liancheng/spark-8848/standard-parquet-write-path.
Showing
- sql/catalyst/src/main/scala/org/apache/spark/sql/types/Decimal.scala 3 additions, 1 deletion...t/src/main/scala/org/apache/spark/sql/types/Decimal.scala
- sql/core/src/main/scala/org/apache/spark/sql/SQLConf.scala 2 additions, 3 deletionssql/core/src/main/scala/org/apache/spark/sql/SQLConf.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/CatalystReadSupport.scala 33 additions, 2 deletions...l/execution/datasources/parquet/CatalystReadSupport.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/CatalystRowConverter.scala 32 additions, 27 deletions.../execution/datasources/parquet/CatalystRowConverter.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/CatalystSchemaConverter.scala 21 additions, 25 deletions...ecution/datasources/parquet/CatalystSchemaConverter.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/CatalystWriteSupport.scala 436 additions, 0 deletions.../execution/datasources/parquet/CatalystWriteSupport.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/DirectParquetOutputCommitter.scala 1 addition, 1 deletion...on/datasources/parquet/DirectParquetOutputCommitter.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetConverter.scala 0 additions, 39 deletions.../sql/execution/datasources/parquet/ParquetConverter.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetFilters.scala 0 additions, 36 deletions...rk/sql/execution/datasources/parquet/ParquetFilters.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetRelation.scala 21 additions, 21 deletions...k/sql/execution/datasources/parquet/ParquetRelation.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetTableSupport.scala 0 additions, 321 deletions...l/execution/datasources/parquet/ParquetTableSupport.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetTypesConverter.scala 0 additions, 160 deletions...execution/datasources/parquet/ParquetTypesConverter.scala
- sql/core/src/test/scala/org/apache/spark/sql/UserDefinedTypeSuite.scala 22 additions, 10 deletions...est/scala/org/apache/spark/sql/UserDefinedTypeSuite.scala
- sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetIOSuite.scala 32 additions, 31 deletions...rk/sql/execution/datasources/parquet/ParquetIOSuite.scala
- sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetQuerySuite.scala 45 additions, 1 deletion...sql/execution/datasources/parquet/ParquetQuerySuite.scala
- sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetSchemaSuite.scala 2 additions, 2 deletions...ql/execution/datasources/parquet/ParquetSchemaSuite.scala
- sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetTest.scala 43 additions, 1 deletion...spark/sql/execution/datasources/parquet/ParquetTest.scala
- sql/hive/src/test/scala/org/apache/spark/sql/hive/HiveMetastoreCatalogSuite.scala 16 additions, 12 deletions...org/apache/spark/sql/hive/HiveMetastoreCatalogSuite.scala
Loading
Please register or sign in to comment