美文网首页
spark常见RDD算法演示

spark常见RDD算法演示

作者: pkingdog | 来源:发表于2019-01-21 18:35 被阅读0次

 1.sparkRDD大致总体上可以分成两个bufe一个是Value类型和Key-Value类型

1.1Value型

1.1.1map((func)函数 

作用 :返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成

需求:创建一个1-10数组的RDD,将所有元素*2形成新的RDD

1.1.2 mapPartitions(func) 

作用 :类似于map,但独立地在RDD的每一个分片上运行,因此在类型为T的RDD上运行时,func的函数类型必须是Iterator[T] => Iterator[U]。假设有N个元素,有M个分区,那么map的函数的将被调用N次,而mapPartitions被调用M次,一个函数一次处理所有分区。

需求:创建一个1-10数组的RDD,将所有元素*2形成新的RDD

1.1.3 mapPartitionsWithIndex(func)

作用 :类似于mapPartitions,但func带有一个整数参数表示分片的索引值,因此在类型为T的RDD上运行时,func的函数类型必须是(Int, Interator[T]) => Iterator[U];

2. 需求:创建一个RDD,使每个元素跟所在分区形成一个元组组成一个新的RDD

1.2.3:flatMap(func)

作用 :类似于map,但是每一个输入元素可以被映射为0或多个输出元素(所以func应该返回一个序列,而不是单一元素)

使用flatMap()函数的时候注意点不能传递一个常量要传递一个是可序列化迭代的数据集falgMap()类似一个扁平化折叠来看

需求:创建一个元素为1-5的RDD,运用flatMap创建一个新的RDD,新的RDD为原RDD的每个元素的2倍

flatMap()函数传参数的时候一定要注意函数的输入值和输出值是什么.scala里面对于flatmap函数的返回值是一个可以迭代的值所以这个时候

1.2.4:glom(func)函数

1. 作用:将每一个分区形成一个数组,形成新的RDD类型时RDD[Array[T]]

需求:创建一个2个分区的RDD,并将每个分区的数据放到一个数组,同时计算这个这个数组的最大值

groupBy()函数

1. 作用:分组,按照传入函数的返回值进行分组。将相同的key对应的值放入一个迭代器。

2. 需求:创建一个RDD,按照元素模以2的值进行分组

2.3.1.8 filter(func)

1. 作用:过滤。返回一个新的RDD,该RDD由经过func函数计算后返回值为true的输入元素组成。

2. 需求:创建一个RDD(由字符串组成),过滤出一个新RDD(包含”xiao”子串)

9 sample(withReplacement, fraction, seed)

参数1. withReplacement : true(抽出的数据放回) scala 底层采用的是泊松分布算法

:flase(抽样的数据不放回) scala底层采用的柏努力算法

参数2:以指定的随机种子随机抽样出数量为fraction的数

参数3: seed用于指定随机数生成器种子

作用:以指定的随机种子随机抽样出数量为fraction的数据,withReplacement表示是抽出的数据是否放回,true为有放回的抽样,false为无放回的抽样,seed用于指定随机数生成器种子。

相关文章

  • spark常见RDD算法演示

    1.sparkRDD大致总体上可以分成两个bufe一个是Value类型和Key-Value类型 1.1Value型...

  • Spark08 RDD KV数据

    键值对 RDD 是 Spark 中许多操作所需要的常见数据类型。Spark 为包含简直对类型的 RDD 提供了一些...

  • Spark三大数据结构

    RDD: 弹性分布式数据集 RDD特点 数据集:RDD是spark中最常见的数据结构。RDD中不直接存储数据,只存...

  • Spark RDD Api使用指南

    ​ 在Spark快速入门-RDD文章中学了spark的RDD。spark包含转换和行动操作。在进行spark程...

  • 2 通过案例对SparkStreaming透彻理解之二

    Spark Core是基于RDD形成的,RDD之间都会有依赖关系。而Spark Streaming是在RDD之上增...

  • Spark MLlib ALS 推荐系统

    Spark 机器学习库从 1.2 版本以后被分为两个包: spark.mllib包含基于RDD的原始算法API。S...

  • Spark Scheduler内部原理剖析

    通过文章“Spark核心概念RDD”我们知道,Spark的核心是根据RDD来实现的,Spark Scheduler...

  • 6.spark core之键值对操作

      键值对RDD(pair RDD)是spark中许多操作所需要的常见数据类型,通常用来进行聚合计算。 创建Pai...

  • Spark Core - 编程基础

    RDD编程 什么是RDD RDD是Spark的基石,是实现Spark数据处理的核心抽象。RDD是一个抽象类,它代表...

  • Spark中对RDD的理解

    Spark中对RDD的理解 简介 what the is RDD? RDD(Resilient Distribut...

网友评论

      本文标题:spark常见RDD算法演示

      本文链接:https://www.haomeiwen.com/subject/uyhhjqtx.html