Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
2.3.4, 2.4.6, 3.0.0, 3.0.1, 3.1.0
Description
I found that when sorting some boolean data into the cache that the results can change when the data is read back out.
It needs to be a non-trivial amount of data, and it is highly dependent on the order of the data. If I disable compression in the cache the issue goes away. I was able to make this happen in 3.0.0. I am going to try and reproduce it in other versions too.
I'll attach the parquet file with boolean data in an order that causes this to happen. As you can see after the data is cached a single null values switches over to be false.
scala> val bad_order = spark.read.parquet("./bad_order.snappy.parquet") bad_order: org.apache.spark.sql.DataFrame = [b: boolean] scala> bad_order.groupBy("b").count.show +-----+-----+ | b|count| +-----+-----+ | null| 7153| | true|54334| |false|54021| +-----+-----+ scala> bad_order.cache() res1: bad_order.type = [b: boolean] scala> bad_order.groupBy("b").count.show +-----+-----+ | b|count| +-----+-----+ | null| 7152| | true|54334| |false|54022| +-----+-----+ scala>
Attachments
Attachments
Issue Links
- is caused by
-
SPARK-20783 Enhance ColumnVector to support compressed representation
- Resolved
- links to