【发布时间】:2021-06-06 14:13:12
【问题描述】:
将 sortWithinPartitions 应用于 df 并将输出写入表后,我得到了一个结果,但我不确定如何解释。
df
.select($"type", $"id", $"time")
.sortWithinPartitions($"type", $"id", $"time")
结果文件看起来有点像
1 a 5
2 b 1
1 a 6
2 b 2
1 a 7
2 b 3
1 a 8
2 b 4
它实际上并不是随机的,但也没有像我期望的那样排序。即,首先按类型,然后是 id,然后是时间。 如果我在排序之前尝试使用重新分区,那么我会得到我想要的结果。但由于某种原因,文件的重量增加了 5 倍(100gb 对 20gb)。
我正在写一个 hive orc 表,压缩设置为 snappy。
有谁知道为什么它是这样排序的,为什么重新分区的顺序正确,但尺寸更大?
使用火花 2.2。
【问题讨论】:
标签: apache-spark orc columnsorting snappy