Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 我应该避免在Dataset/Dataframe中使用groupby()吗?_Apache Spark_Optimization_Group By_Dataset_Spark Dataframe - Fatal编程技术网

Apache spark 我应该避免在Dataset/Dataframe中使用groupby()吗?

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之前对每个分

我知道在RDD中,不鼓励我们使用groupByKey,并鼓励我们使用reduceByKey()和aggregateByKey()等替代方法,因为这些其他方法将首先在每个分区上进行缩减,然后执行groupByKey(),从而减少被洗牌的数据量


现在,我的问题是,这是否仍然适用于Dataset/Dataframe?我认为由于catalyst引擎进行了大量优化,catalyst将自动知道它应该在每个分区上减少,然后执行groupBy。我说得对吗?或者我们仍然需要采取措施确保在groupBy之前对每个分区执行缩减。

应在数据帧和数据集上使用
groupBy
。如果您认为完全正确,Catalyst Optimizer将构建计划并优化GroupBy中的所有入口以及您希望执行的其他聚合

spark 1.4中有一个很好的例子,展示了reduceByKey与RDD以及GroupBy与DataFrame的比较

您可以看到,这确实比RDD快得多,因此groupBy优化了所有的执行,以获得更多详细信息,您可以查看带有