Apache spark 我应该避免在Dataset/Dataframe中使用groupby()吗?
我知道在RDD中,不鼓励我们使用groupByKey,并鼓励我们使用reduceByKey()和aggregateByKey()等替代方法,因为这些其他方法将首先在每个分区上进行缩减,然后执行groupByKey(),从而减少被洗牌的数据量Apache spark 我应该避免在Dataset/Dataframe中使用groupby()吗?,apache-spark,optimization,group-by,dataset,spark-dataframe,Apache Spark,Optimization,Group By,Dataset,Spark Dataframe,我知道在RDD中,不鼓励我们使用groupByKey,并鼓励我们使用reduceByKey()和aggregateByKey()等替代方法,因为这些其他方法将首先在每个分区上进行缩减,然后执行groupByKey(),从而减少被洗牌的数据量 现在,我的问题是,这是否仍然适用于Dataset/Dataframe?我认为由于catalyst引擎进行了大量优化,catalyst将自动知道它应该在每个分区上减少,然后执行groupBy。我说得对吗?或者我们仍然需要采取措施确保在groupBy之前对每个分
现在,我的问题是,这是否仍然适用于Dataset/Dataframe?我认为由于catalyst引擎进行了大量优化,catalyst将自动知道它应该在每个分区上减少,然后执行groupBy。我说得对吗?或者我们仍然需要采取措施确保在groupBy之前对每个分区执行缩减。应在数据帧和数据集上使用
groupBy
。如果您认为完全正确,Catalyst Optimizer将构建计划并优化GroupBy中的所有入口以及您希望执行的其他聚合
spark 1.4中有一个很好的例子,展示了reduceByKey与RDD以及GroupBy与DataFrame的比较
您可以看到,这确实比RDD快得多,因此groupBy优化了所有的执行,以获得更多详细信息,您可以查看带有