Kristin Cowalcijk created SEDONA-465: ----------------------------------------
Summary: Support reading legacy parquet files written by Apache Sedona <= 1.3.1-incubating Key: SEDONA-465 URL: https://issues.apache.org/jira/browse/SEDONA-465 Project: Apache Sedona Issue Type: New Feature Reporter: Kristin Cowalcijk Fix For: 1.5.1 Due to a breaking change in Apache Sedona 1.4.0 to the SQL type of {{GeometryUDT}} (SEDONA-205) as well as the serialization format of geometry values (SEDONA-207), Parquet files containing geometry columns written by Apache Sedona 1.3.1 or earlier cannot be read by Apache Sedona 1.4.0 or later. Here is an example of an exception when trying to read such files: {code:java} 24/01/08 12:52:56 ERROR Executor: Exception in task 0.0 in stage 12.0 (TID 11) org.apache.spark.sql.AnalysisException: Invalid Spark read type: expected required group geom (LIST) { repeated group list { required int32 element (INTEGER(8,true)); } } to be list type but found Some(BinaryType) at org.apache.spark.sql.execution.datasources.parquet.ParquetSchemaConverter$.checkConversionRequirement(ParquetSchemaConverter.scala:745) at org.apache.spark.sql.execution.datasources.parquet.ParquetToSparkSchemaConverter.$anonfun$convertGroupField$3(ParquetSchemaConverter.scala:343) at scala.Option.fold(Option.scala:251) at org.apache.spark.sql.execution.datasources.parquet.ParquetToSparkSchemaConverter.convertGroupField(ParquetSchemaConverter.scala:324) at org.apache.spark.sql.execution.datasources.parquet.ParquetToSparkSchemaConverter.convertField(ParquetSchemaConverter.scala:188) at org.apache.spark.sql.execution.datasources.parquet.ParquetToSparkSchemaConverter.$anonfun$convertInternal$3(ParquetSchemaConverter.scala:147) at org.apache.spark.sql.execution.datasources.parquet.ParquetToSparkSchemaConverter.$anonfun$convertInternal$3$adapted(ParquetSchemaConverter.scala:117) at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:286) at scala.collection.immutable.Range.foreach(Range.scala:158) at scala.collection.TraversableLike.map(TraversableLike.scala:286) at scala.collection.TraversableLike.map$(TraversableLike.scala:279) at scala.collection.AbstractTraversable.map(Traversable.scala:108) ... {code} We'll extend the GeoParquet reader to support reading such legacy parquet files. Users can specify {{.option("legacyMode", "true")}} when reading such files to read the geometry columns correctly: {code} val df = sedona.read.format("geoparquet").option("legacyMode", "true").load("path/to/legacy-parquet-files") {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)