Github user mallman commented on a diff in the pull request:
https://github.com/apache/spark/pull/16578#discussion_r148866084
--- Diff:
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetReadSupport.scala
---
@@ -63,9 +74,22 @@ private[parquet] class ParquetReadSupport extends
ReadSupport[UnsafeRow] with Lo
StructType.fromString(schemaString)
}
- val parquetRequestedSchema =
+ val clippedParquetSchema =
ParquetReadSupport.clipParquetSchema(context.getFileSchema,
catalystRequestedSchema)
+ val parquetRequestedSchema = if (parquetMrCompatibility) {
+ // Parquet-mr will throw an exception if we try to read a superset
of the file's schema.
+ // Therefore, we intersect our clipped schema with the underlying
file's schema
--- End diff --
On the other hand, if we fix `parquetMrCompatibility` to `true`, then a
couple of other tests fail. Namely, these tests are
"Filter applied on merged Parquet schema with new column should work" in
`ParquetFilterSuite.scala`
"read partitioned table - merging compatible schemas" in
`ParquetPartitionDiscoverySuite.scala`
In both cases, the failures involve queries over multiple files with
compatible but different schema.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]