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() 方法是不是洗牌?的主要内容,如果未能解决你的问题,请参考以下文章