Spark Distinct操作的DAG问题

发布于 2022-09-04 07:03:47 字数 467 浏览 24 评论 0

问题

我创建了一个分成两个节点的List

val list = sc.parallelize(List(1,1,1,1,2,2,2,3,3,4),2)

现在对其进行distinct操作

list.distinct.collect

执行时的DAG图如下所示
图片描述

请问,这个Stage0中的distinct与Stage1中的distinct的区别。

我是这么理解的,首先distinct在各个节点做一次transformation,然后再shuffle做一次transformation。不知道是否正确。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

指尖上的星空 2022-09-11 07:03:47
  1. spark 不同stage 之间的划分原则是是否有shuffle操作。

  2. 这里的不是进行了两次 distinct操作,而是一个distinct操作被划分为两个stage,因为有distinct操作需要shuffle。

  3. 如果你仔细看stage0的话,你会发现这里进行的distinct 是mapPartitions。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文