JAVA Spark中的操作集合的方法

这篇博客介绍了在JavaSpark中如何操作集合,包括使用distinct进行去重,union合并两个RDD,intersection获取交集,subtract找出只在其中一个RDD中的元素,以及cartesian计算笛卡尔积。同时,还展示了如何使用reduce求RDD中数组的和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaRDD<String> rdd1 = jsc.parallelize(Arrays.asList("coffee", "coffee", "panda", "monkey", "tea"));
JavaRDD<String> rdd2 = jsc.parallelize(Arrays.asList("coffee", "monkey", "kitty"));

//distinct 去重操作
JavaRDD<String> rdd_distinct = rdd1.distinct();
System.out.println(rdd_distinct.collect());

//union 该函数将两个RDD进行合并,不去重
JavaRDD<String> rdd_union = rdd1.union(rdd2);
System.out.println(rdd_union.collect());

//intersection  该函数返回两个RDD的交集,并且去重
JavaRDD<String> rdd_intersection = rdd1.intersection(rdd2);
System.out.println(rdd_intersection.collect());

//返回在rdd1中出现,并且不在rdd2中出现的元素,不去重
JavaRDD<String> rdd_subtract = rdd1.subtract(rdd2);
System.out.println(rdd_subtract.collect());

//返回rdd1与rdd2的笛卡尔积
JavaPairRDD<String, String> rdd_cartesian = rdd1.cartesian(rdd2);
System.out.println(rdd_cartesian.collect());

//返回rdd中数组的合
JavaRDD<Integer> rdd = jsc.parallelize(Arrays.asList(1, 2, 3, 4));
Integer sum = rdd.reduce(new Function2<Integer, Integer, Integer>() {
    @Override
    public Integer call(Integer x, Integer y) throws Exception {
        return x + y;
    }
});
System.out.println(sum);
输出结果:
[monkey, coffee, panda, tea]
[coffee, coffee, panda, monkey, tea, coffee, monkey, kitty]
[monkey, coffee]
[tea, panda]
[(coffee,coffee), (coffee,monkey), (coffee,kitty), (coffee,coffee), (coffee,monkey), (coffee,kitty), (panda,coffee), (panda,monkey), (panda,kitty), (monkey,coffee), (monkey,monkey), (monkey,kitty), (tea,coffee), (tea,monkey), (tea,kitty)]
10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值