import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.VoidFunction;
import scala.Tuple2; import java.util.Arrays;
import java.util.List; /**
* groupbykey([numTasks]) 算子:
* 将rdd中的算子按照key进行分组操作,所有的key对应的是一个iterable
* 可以设置并行度,如果没有设置并行默认与父RDD保持一直,也就是父RDD有多少partitions,它的并行度就是多少
* 是对RDD中的所有数据做shuffle,根据不同的Key映射到不同的partition中再进行aggregate
*/
public class GroupByKeyOperator {
public static void main(String[] args) {
SparkConf conf = new SparkConf().setMaster("local").setAppName("groupbykey");
JavaSparkContext sc = new JavaSparkContext(conf);
List<Tuple2<String,String>> list = Arrays.asList(
new Tuple2("W1","1"),
new Tuple2("W2","2"),
new Tuple2("W3","3"),
new Tuple2("W2","22"),
new Tuple2("W1","11")
);
JavaPairRDD<String,String> listRdd = sc.parallelizePairs(list,2); JavaPairRDD<String,Iterable<String>> result = listRdd.groupByKey(3); result.foreach(new VoidFunction<Tuple2<String, Iterable<String>>>() {
@Override
public void call(Tuple2<String, Iterable<String>> stringIterableTuple2) throws Exception {
System.err.println(stringIterableTuple2._1+":"+stringIterableTuple2._2);
}
});
}
}

微信扫描下图二维码加入博主知识星球,获取更多大数据、人工智能、算法等免费学习资料哦!

java实现spark常用算子之groupbykey的更多相关文章

  1. java实现spark常用算子之Union

    import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...

  2. java实现spark常用算子之TakeSample

    import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...

  3. java实现spark常用算子之SaveAsTextFile

    import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...

  4. java实现spark常用算子之Repartitions

    import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...

  5. java实现spark常用算子之mapPartitionsWithIndex

    import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...

  6. java实现spark常用算子之map

    import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...

  7. java实现spark常用算子之intersection

    import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...

  8. java实现spark常用算子之frist

    import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...

  9. java实现spark常用算子之flatmap

    import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...

随机推荐

  1. HailStone序列

    目前HailStone序列还未被证明是否有穷,所以它未必是一个算法. * HailStone序列* n=1时,返回1:* n>1时且为偶数时,{n} ∪ {n/2}* n>1时且为奇数时, ...

  2. SRGAN 学习心得

    一.理论 关于SRGAN的的论文中文翻译网上一大堆,可以直接读网络模型(大概了解),关于loss的理解,然后就能跑代码 loss  = mse + 对抗损失 + 感知损失   : https://bl ...

  3. spark streaming 6: BlockGenerator、RateLimiter

    BlockGenerator和RateLimiter其实很简单,但是它包含了几个很重要的属性配置的处理,所以记录一下. ))) , SECONDS) From WizNote

  4. koa 基础(二十三)封装 DB 库 --- 应用

    1.根目录/module/config.js /** * 配置文件 */ var app = { dbUrl: 'mongodb://127.0.0.1:27017/?gssapiServiceNam ...

  5. Memcached 在Windows和Linux的安装和使用

    Memcached 把经常操作的数据导入到内存中 Memcached是一个高性能的支持分布式的内存存储系统,可以看成一个巨大的hash表.形式:key->value key(唯一键值string ...

  6. python全栈开发第6天

    作业一:1) 开启Linux系统前添加一块大小为15G的SCSI硬盘 2) 开启系统,右击桌面,打开终端 3) 为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区 ...

  7. javascript字符串转数字

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. Java之HSF搭建demo

    1.去阿里云官网下载Demo edas-app-demo.zip 2.下载Ali-Tomcat和Pandora,注意红色下面字体 a)下载 Ali-Tomcat,保存后解压至相应的目录(如:d:\wo ...

  9. Win10资源管理器始终使用详细视图模式

    Win10系统中使用资源管理器时,如果文件夹里有音乐文件就自动切换视图模式为音乐模式,这样有时确实很头疼,看不到文件的大小等信息. 解决的办法如下: 新创建FolderType = NotSpecif ...

  10. (“(null)” is of a model that is not supported by this version of Xcode. Please...)

    真机测试遇到以下问题: (还以为手机不支持Xcode的版本呢) 解决方法: 发现只要将XCode重启后就可以真机运行了,碰见这个问题的朋友可以试下,我反正是被坑了半小时...