【问题标题】:Should I Avoid groupby() in Dataset/Dataframe? [duplicate]我应该避免在数据集/数据框中使用 groupby() 吗? [复制]
【发布时间】:2018-06-04 14:49:39
【问题描述】:

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

现在,我的问题是这是否仍然适用于数据集/数据框?我在想,由于催化剂引擎做了很多优化,催化剂会自动知道它应该在每个分区上减少,然后执行 groupBy。我对么?或者我们仍然需要采取措施确保在 groupBy 之前对每个分区执行归约。

【问题讨论】:

    标签: apache-spark optimization group-by dataset spark-dataframe


    【解决方案1】:

    groupBy 应该用于数据帧和数据集。您的想法是完全正确的,Catalyst Optimizer 将构建计划并优化 GroupBy 和其他您想做的聚合中的所有入口。

    有一个很好的例子,那就是在这个link 的 spark 1.4 中,它显示了 reduceByKey 与 RDD 和 GroupBy 与 DataFrame 的比较。

    您可以看到它确实比 RDD 快得多,因此 groupBy 优化所有执行以获取更多详细信息,您可以查看 DataBricks 的官方帖子introduction of DataFrames

    【讨论】:

      猜你喜欢
      • 2018-07-29
      • 2011-05-08
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 2018-06-16
      • 2011-04-25
      • 2011-03-26
      • 2014-03-13
      相关资源
      最近更新 更多