这个问题在这里已有答案:
我已经检查过并且有点好奇了解RDD和DataFrame的groupBy函数。是否有任何性能差异或其他?请建议。
想想DataFrame.groupBy
和RDD.groupBy
之间的区别,RDD的groupBy变体不像DataFrame的groupBy变体那样保留顺序。
df.orderBy($"date").groupBy($"id").agg(first($"date") as "start_date")
以上工作符合预期,即汇总结果将由date
订购。由于RDD和DataFrame的名称听起来相同,人们可能会认为它在RDD中也会按预期工作,但不是,但事实并非如此。原因是RDD的groupBy和DataFrame的groupBy的实现是非常不同的。 RDD的groupBy
可能会根据密钥对数据进行混洗。