Spark SQL JOIN在使用df.repartition与读入并使用分区拼花地板时给出了不同的执行时间

2024-09-27 07:20:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在对一个公共id上的两个数据帧进行广播哈希连接

我注意到,当我尝试DataFrame.repartition("id")并将数据帧传递到JOIN查询中时,执行时间比使用DataFrame.write.partitionBy("id")将数据帧写入拼花文件,然后在将其传递到查询中之前将其作为数据帧读入拼花要慢得多

为什么重新划分数据框与从分区拼花地板读取数据框之间存在差异

当我调用df.rdd.getNumPartitions()时,第一种情况和第二种情况都有相同数量的分区,并且两个数据帧都根据id列进行排序和分区

对于DataFrame.repartition("id")来说,查询时间是三分钟,总共需要七个阶段的三个作业

对于分割成拼花地板,查询时间为一分钟,包含一个作业和一个阶段

1个数据集为41 mil行,而另一个数据集为2 mil行


Tags: 数据iddataframe作业时间情况阶段write

热门问题