1. package action;
  2.  
  3. import org.apache.spark.SparkConf;
  4. import org.apache.spark.api.java.JavaPairRDD;
  5. import org.apache.spark.api.java.JavaRDD;
  6. import org.apache.spark.api.java.JavaSparkContext;
  7. import org.apache.spark.api.java.function.Function2;
  8. import org.apache.spark.api.java.function.VoidFunction;
  9. import scala.Tuple2;
  10.  
  11. import java.util.Arrays;
  12. import java.util.List;
  13. import java.util.Map;
  14.  
  15. /**
  16. * TODO
  17. *
  18. * @ClassName: actions
  19. * @author: DingH
  20. * @since: 2019/4/2 10:53
  21. */
  22. public class actions {
  23. public static void main(String[] args) {
  24. SparkConf conf = new SparkConf().setAppName("actions").setMaster("local");
  25. JavaSparkContext sc = new JavaSparkContext(conf);
  26.  
  27. JavaRDD<Integer> parallelize = sc.parallelize(Arrays.asList(1, 2, 3, 4, 5));
  28.  
  29. JavaPairRDD<String, Integer> rdd = sc.parallelizePairs(Arrays.asList(
  30. new Tuple2<String, Integer>("aaaa", 111),
  31. new Tuple2<String, Integer>("aaaa", 111),
  32. new Tuple2<String, Integer>("bbbb", 222),
  33. new Tuple2<String, Integer>("bbbb", 222),
  34. new Tuple2<String, Integer>("bbbb", 222),
  35. new Tuple2<String, Integer>("ccc", 333)
  36. ));
  37.  
  38. JavaPairRDD<String, Integer> rdd1 = rdd.reduceByKey(new Function2<Integer, Integer, Integer>() {
  39. public Integer call(Integer integer, Integer integer2) throws Exception {
  40. return integer + integer2;
  41. }
  42. });
  43.  
  44. Tuple2<String, Integer> reduce = rdd1.reduce(new Function2<Tuple2<String, Integer>, Tuple2<String, Integer>, Tuple2<String, Integer>>() {
  45. public Tuple2<String, Integer> call(Tuple2<String, Integer> stringIntegerTuple2, Tuple2<String, Integer> stringIntegerTuple22) throws Exception {
  46. Tuple2<String, Integer> stringIntegerTuple21 = new Tuple2<String, Integer>(stringIntegerTuple2._1 + stringIntegerTuple22._1, stringIntegerTuple2._2 + stringIntegerTuple22._2);
  47.  
  48. return stringIntegerTuple21;
  49. }
  50. });
  51.  
  52. System.out.println(reduce);
  53.  
  54. List<Tuple2<String, Integer>> collect = rdd1.collect();
  55. for (Tuple2<String,Integer> tt:collect){
  56. System.out.println(tt);
  57. }
  58.  
  59. long count = rdd1.count();
  60.  
  61. Tuple2<String, Integer> first = rdd1.first();
  62.  
  63. List<Tuple2<String, Integer>> take = rdd1.take(4);
  64.  
  65. List<Tuple2<String, Integer>> tuple2s = rdd1.takeSample(false, 3);
  66.  
  67. rdd1.saveAsTextFile("");
  68.  
  69. Map<String, Object> stringObjectMap = rdd1.countByKey();
  70.  
  71. rdd1.foreach(new VoidFunction<Tuple2<String, Integer>>() {
  72. public void call(Tuple2<String, Integer> stringIntegerTuple2) throws Exception {
  73. System.out.println(11);
  74. }
  75. });
  76.  
  77. sc.stop();
  78. }
  79. }

  

spark actions 算子的更多相关文章

  1. [大数据之Spark]——Actions算子操作入门实例

    Actions reduce(func) Aggregate the elements of the dataset using a function func (which takes two ar ...

  2. Spark RDD概念学习系列之Spark的算子的分类(十一)

    Spark的算子的分类 从大方向来说,Spark 算子大致可以分为以下两类: 1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理. Transformat ...

  3. Spark操作算子本质-RDD的容错

    Spark操作算子本质-RDD的容错spark模式1.standalone master 资源调度 worker2.yarn resourcemanager 资源调度 nodemanager在一个集群 ...

  4. Spark RDD概念学习系列之Spark的算子的作用(十四)

    Spark的算子的作用 首先,关于spark算子的分类,详细见 http://www.cnblogs.com/zlslch/p/5723857.html 1.Transformation 变换/转换算 ...

  5. Spark RDD算子介绍

    Spark学习笔记总结 01. Spark基础 1. 介绍 Spark可以用于批处理.交互式查询(Spark SQL).实时流处理(Spark Streaming).机器学习(Spark MLlib) ...

  6. 列举spark所有算子

    一.RDD概述      1.什么是RDD           RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可 ...

  7. Spark常用算子-KeyValue数据类型的算子

    package com.test; import java.util.ArrayList; import java.util.List; import java.util.Map; import or ...

  8. Spark常用算子-value数据类型的算子

    package com.test; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; im ...

  9. spark常用算子总结

    算子分为value-transform, key-value-transform, action三种.f是输入给算子的函数,比如lambda x: x**2 常用算子: keys: 取pair rdd ...

随机推荐

  1. mongoDB 文档概念

    mongoDB 文档概念 什么是文档 文档是 mongodb 基本的数据组织单元,类似于mysql 中的记录 文档由多个键值对组成,每个键值对表达一个数据项 属于 bson 数据 ps:  bson ...

  2. 洛谷P3369 普通平衡树

    刚学平衡树,分别用了Splay和fhq-treap交了一遍. 这是Splay的板子,貌似比较短? Splay #include <iostream> #include <cstdio ...

  3. Gym - 101350A Sherlock Bones(思维)

    The great dog detective Sherlock Bones is on the verge of a new discovery. But for this problem, he ...

  4. 分布式监控系统开发【day38】:主机存活检测程序解析(七)

    一.目录结构 二.入口 1.文件MonitorServer.py import os import sys if __name__ == "__main__": os.enviro ...

  5. Java Web之Cookie、Session

    讲Cookie和Seesion之前,先讲一下HTTP连接其实是无序的,服务器不知道是谁在访问它.现在我们来实现一个简单的邮箱功能. 要求: 1.登录页面登录之后看到收件箱和欢迎我 2.点击收件箱看到几 ...

  6. dubbo和dubboX与微服务架构(dubbo一)

    一.传统三层架构模式的缺陷 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)web.业务逻辑层(Bu ...

  7. HTML(三)HTML属性

    HTML 属性 属性: [class] 规定元素的一个或多个类 注意: 类不能以数字开头 class = "classA classB" // 多个类的写法 [id] 规定元素的唯 ...

  8. css预编译语言 sass scss(变量$var, css嵌套规则,@import规则,@extend,@mixin)

    什么是sass Sass 是对 CSS 的扩展,让 CSS 语言更强大.优雅. 它允许你使用变量.嵌套规则. mixins.导入等众多功能, 并且完全兼容 CSS 语法. Sass 有助于保持大型样式 ...

  9. 【转载】c++指针的指针和指针的引用

    https://www.cnblogs.com/li-peng/p/4116349.html

  10. MyBatis # $区别

    方式一: <select id="getUserById" resultType="User" parameterType=”int”> SELEC ...