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) 转化操作会返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值