我有一个spark sql查询,如下所示:
TestPlugin
当我在我的数据集上运行时,运行时间最长的某些任务比其他任务需要更长的时间。例如,spark ui中的摘要是:
val stats = readings
.join(stations, $"r.stationId" === $"i.stationId")
.groupBy($"i.country", $"r.date")
.agg(min($"r.temp").as("min"), max($"r.temp").as("max"), avg($"r.temp").as("avg"))
.as[CountryTemperatureDistribution]
基于此,一些任务在几秒钟内完成,而其他任务需要几分钟。我试图排除数据偏差(我的小组不应该产生偏斜的数据),但是如果这是数据偏斜,可能是较慢的作业输入大小比较快的作业(它们更大)别'。T)
另一个奇怪的是,服务器作业(即使需要几分钟才完成的作业)的输入大小为0B,但输入记录为非零?
TLDR:为什么我的某些部门比其他部门需要更长时间的竞争?