Pow*_*ers 6 sorting apache-spark parquet
如果DataFrame在被保存为Parquet文件之前进行排序,数据提取会更快地运行.
假设我们有以下peopleDf
DataFrame(假装这是一个样本而真正的那个有200亿行):
+-----+----------------+
| age | favorite_color |
+-----+----------------+
| 54 | blue |
| 10 | black |
| 13 | blue |
| 19 | red |
| 89 | blue |
+-----+----------------+
Run Code Online (Sandbox Code Playgroud)
让我们将这个DataFrame的已排序和未排序版本写出到Parquet文件.
peopleDf.write.parquet("s3a://some-bucket/unsorted/")
peopleDf.sort($"favorite_color").write.parquet("s3a://some-bucket/sorted/")
Run Code Online (Sandbox Code Playgroud)
在读取排序数据并基于数据提取时,是否有任何性能提升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")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3063 次 |
最近记录: |