在分区之前对列进行排序是否有所不同

问题描述 投票:0回答:0

我想知道在分区之前订购数据帧是否会对计算速度/资源消耗产生影响。具体来说,我在 Databricks 中保存了镶木地板文件,我想在两列上进行过滤,但另一列太细化,无法仅对其进行分区。如果首先对数据集进行排序,我会看到第二列在分区中排序,但这对 Databricks 真的有意义吗? Databricks 会识别记录在第二列上排序并加快读取速度吗?

我想根据年份查找电影,但有时也会根据名称查找电影。但是,电影名称太重要了,不能作为分区本身,所以我没有将它包含在 partitionBy 中。

df.orderBy("year","movie_name").write.partitionBy("year").csv("dbfs:/FileStore/movies")

上面的查询比这个好吗?

df.write.partitionBy("year").csv("dbfs:/FileStore/movies")

或者在这种情况下最好的参与方式是什么? Year 和 Name 肯定是数据集中最常用的两个列。

apache-spark pyspark databricks partitioning database-partitioning
© www.soinside.com 2019 - 2024. All rights reserved.