RDD 的 .first() 方法是不是洗牌?

Posted

技术标签:

【中文标题】RDD 的 .first() 方法是不是洗牌?【英文标题】:Does RDD's .first() method shuffle?RDD 的 .first() 方法是否洗牌? 【发布时间】:2019-07-22 17:52:17 【问题描述】:

想象一下,我们有 small_table 和 big_table,需要这样做:

small_table.join(big_table, "left_outer")

如果我这样做会更快吗:

small_table.map(row => 
   val find = big_table.filter('id === row.id)
   if (find.isEmpty) return Smth(row.id, null)
   return Smth(row.id, find.first().name)
)

【问题讨论】:

【参考方案1】:

如果您能够在另一个 RDD 的映射中访问一个 RDD 的数据,则可以在此处运行一些性能测试以查看差异。不幸的是,下面的代码:

 val find = big_table.filter('id === row.id)

不可能,因为这会尝试访问另一个 RDD 中的一个 RDD 的数据。

【讨论】:

以上是关于RDD 的 .first() 方法是不是洗牌?的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 如何每天洗牌一次?

Spark Sort Merge Join 是不是涉及洗牌阶段?

是否可以使用布尔值而不是列表以这种方式进行洗牌?

如何真正洗牌

洗牌流星集合

洗牌问题