RDD动作算子(action)

RDD的动作算子

  • reduce(func)

    通过func函数聚集RDD中的所有元素,这个功能必须是可交换且可并联的。(符合结合律和交换律),func输入为两个元素,返回为一个元素。

      def add(x,y):
          return x+y
    
      sc.parallelize([1, 2, 3, 4, 5]).reduce(add)
      #结果
      15
  • collect()

    以列表的形式返回数据集的所有元素

      sc.parallelize([1, 2, 3, 4, 5]).collect()
      #结果
      [1,2,3,4,5]
  • count()

    返回RDD的元素个数

      sc.parallelize([2, 3, 4]).count()
      #结果
      3
  • first()

    返回RDD的第一个元素(类似与take(1))

      sc.parallelize([2,3,4]).first()
      #结果
      2
  • take(n)

    返回一个由数据集的前n个元素组成的数组

      sc.parallelize([1,2,3,4,5]).take(3)
      #结果
      [1,2,3]
  • foreach(func)

    将一个函数应用于此RDD的所有元素。

      def f(x):
          print(x)
    
      sc.parallelize([1,2,3]).foreach(f)
      #结果
      1
      2
      3
  • top(num)

    返回RDD内部元素的前n个最大值

      sc.parallelize([2,3,4]).top(2)
      #结果
      [4,3]
  • saveAsTextFile(path)

    将数据集的元素以textfile的形式保存到HDFS文件系统或者其他支持的文件系统,对于每个元素,Spark将会调用toString方法,将它装换为文件中的文本

      sc.parallelize([2,3,4]).saveAsTextFile('/home/hadoop/0444')
    
      cd 0444/
      cat part-00000
      #结果
      2
      3
      4
  • aggregate(zeroValue, seqOp, combOp)

操作的初始值是zeroValue,seqOp是聚合各分区中的元素,combop是将聚合各分区中元素的结果再次进行聚合

rdd1 = sc.parallelize([1,2,3,4,5],2)
result2 = rdd1.aggregate(0,lambda x,y:max(x,y),lambda x,y:x+y)
print(result2)

result3 = rdd1.aggregate(0,lambda x,y:x+y,lambda x,y:x+y)
print(result3)

result4 = rdd1.aggregate(10,lambda x,y:max(x,y),lambda x,y:x+y)
print(result4)

rdd1 = sc.parallelize(["a","b","c","d","e","f"],2)
result5 = rdd1.aggregate("",lambda x,y:x+y,lambda x,y:x+y)
print(result5)

result6 = rdd1.aggregate("|",lambda x,y:x+y,lambda x,y:x+y)
print(result6)

rdd7=sc.parallelize(["12","23","345","4567"],2)
rdd7.aggregate('',lambda x,y:max(len(str(x)),len(str(y))),lambda x,y:str(x)+str(y))

原文地址:https://www.cnblogs.com/jiajiaba/p/10658134.html

时间: 2024-09-28 00:56:21

RDD动作算子(action)的相关文章

RDD转换算子与操作算子

一.RDD算子分类 1. RDD算子分类及概述 RDD的算子分为Transformation和Action两类,Transformation是延迟执行,Action是立即执行.Transformation和Action本质上的区别是,Transformation是从一个RDD到一个RDD,Action是从一个RDD到一个值.由下图可知,Spark的的转换算子与操作算子的执行流程.首先可以从HDFS中使用textFile方法将数据加载到内存,然后经过转换算子对RDD进行转换,最后再通过操作算子Ac

XAF 框架中,自定义参数动作(Action),输入参数的控件可定义,用于选择组织及项目

XAF 框架中,如何生成一个自定义参数动作(Action),输入参数的控件可定义? 参考文档:https://documentation.devexpress.com/eXpressAppFramework/113183/Task-Based-Help/Actions/How-to-Customize-Action-Controls 示例 XAF 安装中带的 示例方案: Feature Center 默认安装在 :%PUBLIC%\Documents\DevExpress Demos 17.1\

深入分析JavaWeb 44 -- Struts2开发核心之动作类Action

一.Action动作类(一般用**Action结尾) struts2 的Action可以是POJO(Plain Old Java Object) 为了让用户开发的Action更加规范struts2提供了一个Action接口 通过method属性指定Action执行方法 没有指定method属性,默认执行execute方法 <action name="addCustomer" class="xgp.struts.actions.CustomerAction" /

Spark RDD常用算子操作(八) 键值对关联操作 subtractByKey, join,fullOuterJoin, rightOuterJoin, leftOuterJoin

原文作者:翟开顺首发:CSDN本人仅为自己方便查阅做了摘抄,请支持原作者原文地址:https://blog.csdn.net/t1dmzks/article/details/72077428 github: https://github.com/zhaikaishun/spark_tutorial/tree/master/src/main/java/com/spark/rdd_tutorial/tutorial8先从spark-learning中的一张图大致了解其功能 subtractByKey

RDD之六:Action算子

本质上在Actions算子中通过SparkContext执行提交作业的runJob操作,触发了RDD DAG的执行. 根据Action算子的输出空间将Action算子进行分类:无输出. HDFS. Scala集合和数据类型. 无输出 foreach 对RDD中的每个元素都应用f函数操作,不返回RDD和Array,而是返回Uint. 图中,foreach算子通过用户自定义函数对每个数据项进行操作. 本例中自定义函数为println,控制台打印所有数据项. 源码: [plain] view plai

spark RDD transformation与action函数巩固 (未完)

1.创建RDD val lines = sc.parallelize(List("pandas","i like pandas")) 2.加载本地文件到RDD val linesRDD = sc.textFile("yangsy.txt") 3.过滤 filter 需要注意的是 filter并不会在原有RDD上过滤,而是根据filter的内容重新创建了一个RDD val spark = linesRDD.filter(line => lin

动作(Action)

// 创建精灵(人物) CCSprite* pSpriteWR = CCSprite::create("WR.jpg"); // 设定精灵的起始位置,左边105,高度居中 pSpriteWR->setPosition(ccp(105, visibleSize.height/2 + origin.y)); // 将精灵放入层中 this->addChild(pSpriteWR, 1); // 创建动作Action CCActionInterval* pAction = CCM

Swing——动作(Action)

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41258997 Action接口扩展于ActionListener接口. public Object getValue(String key); public void putValue(String key, Object value); public void setEnabled(boolean b); public boolean isEnabled

Ngui动作系统(Action)

动作(Action)系统简介 什么是动作呢?顾名思义它是管理运行环境中所有动作的中枢,通俗点讲就是动画.它也是总个框架核心组件之一,它提供动作的创建.删除.插入,以及提供对关键帧与过渡的诸多操作.关键帧的过渡可以使用三次贝塞尔曲线,或内置的曲线 linear/ease/ease_in/ease_out/ease_in_out,这也和大多数主流框架以及游戏引擎类似. 动作是什么原理 动作怎么驱动视图进行流畅运动的呢?其实原理很简单,我们可以把动作系统看做一个独立的系统与视图或渲染完全不相关.它们之