【发布时间】:2017-03-27 14:06:16
【问题描述】:
如果 DataFrame 在被持久化为 Parquet 文件之前进行排序,数据提取是否会运行得更快。
假设我们有以下peopleDf DataFrame(假设这是一个样本,而真实的有 200 亿行):
+-----+----------------+
| age | favorite_color |
+-----+----------------+
| 54 | blue |
| 10 | black |
| 13 | blue |
| 19 | red |
| 89 | blue |
+-----+----------------+
让我们将此 DataFrame 的已排序和未排序版本写入 Parquet 文件。
peopleDf.write.parquet("s3a://some-bucket/unsorted/")
peopleDf.sort($"favorite_color").write.parquet("s3a://some-bucket/sorted/")
在读取排序后的数据并根据favorite_color进行数据提取时,性能是否有所提升?
val pBlue1 = spark.read.parquet("s3a://some-bucket/unsorted/").filter($"favorite_color" === "blue")
// is this faster?
val pBlue2 = spark.read.parquet("s3a://some-bucket/sorted/").filter($"favorite_color" === "blue")
【问题讨论】:
标签: sorting apache-spark parquet