【菜鸟系列】spark常用算子总结(java)--union,intersection,coalesce,repartition,cartesian,distinct

本文主要介绍了Spark中几个关键的操作符,包括union、intersection、coalesce、repartition和distinct。这些操作对于数据处理和融合至关重要,尤其在Java开发中有着广泛的应用。

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

/**
 * union
 * 合并
  */
JavaRDD rdd1 = jsc.parallelize(Arrays.asList(1,2,3,4,5,6,7),2);
JavaRDD rdd2 = jsc.parallelize(Arrays.asList(1,21,31,41,51,61,7),2);
JavaRDD rdd3 = rdd1.union(rdd2);
//System.out.println(rdd3.collect());

/**
 * intersection
 * 交集
 */
JavaRDD rdd4 = rdd1.intersection(rdd2);
//System.out.println(rdd4.collect());

/**
 * coalesce(numPartitions,shuffle)
 * shuffle=false是不能增加分区数量的
 * 当减少分区时,采用coalesce可以减少shuffle的损耗
 */
JavaRDD rdd5 = rdd1.coalesce(3,true);
/**
 * repartition(2)
 * 可以增加或者减少分区数量,底层调用coalesce(numpartitions,true)
 * 减少分区的时候建议使用coalesce,以免产生shuffle
 */
JavaRDD rdd6 = rdd1.repartition(2);
/**
 * cartesian
 * 笛卡尔积
 */
JavaPairRDD rdd7 = rdd1.cartesian(rdd2);
//System.out.println(rdd7.collect());
/**
 * distinct
 */
JavaRDD rdd8 = rdd3.distinct();
System.out.println(rdd8.collect());
JavaRDD rdd9 = rdd3.distinct(2);
System.out.println(rdd9.collect());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值