0
点赞
收藏
分享

微信扫一扫

spark做交集


spark做交集

去重
union

最简单的集合操作是 union(other),它会返回一个包含两个 RDD 中所有元素的 RDD。
与数学中的 union() 操作不同的是,如果输入的 RDD 中有重复数据,Spark union() 操作也会包含这些重复数据
(如有必要,我们可以通过 distinct() 实现相同的效果)。

distinct() 操作的开销很大,因为它需要将所有数据通过网络进行混洗(shuffle),以确保每个元素都只有一份

共同元素
intersection(other) 方法,只返回两个 RDD 中都有的元素。
intersection()
在运行时也会去掉所有重复的元素(单个 RDD 内的重复元素也会一起移除)。尽管intersection() union() 的概念相似,

intersection() 的性能却要差很多,因为它需要通过网络混洗数据来发现共有的元素。

subtract(other) 函数接收另一个 RDD 作为参数,返回一个由只存在于第一个 RDD 中而不存在于第二个 RDD 中的所有元素组成的 RDD。和intersection() 一样,它也需要数据混洗。

笛卡儿积开销巨大 cartesian(other)
我们也可以计算两个 RDD 的笛卡儿积,cartesian(other)


举报

相关推荐

0 条评论