我想知道在分区之前订购数据帧是否会对计算速度/资源消耗产生影响。具体来说,我在 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 肯定是数据集中最常用的两个列。