IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 小白学spark日记——map、mapValues、flatMapValues、flatMap、filterByRange、filter -> 正文阅读

[大数据]小白学spark日记——map、mapValues、flatMapValues、flatMap、filterByRange、filter

转换算子: mapValues
注意: 只针对PariedRDD,也就是说RDD描述的数据是若干个键值对
(其实,这里可以操作的数据,可以可以是RDD(Tuple2))
逻辑: 对键值对的做映射,不对键做任何处理
转换算子: map
逻辑: 对RDD中的每一个元素进行映射,映射为指定的值
对每一个分区中的每一个数据进行映射

案例对比:

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object anli1 extends App{
    val sc=new SparkContext(new SparkConf().setMaster("local").setAppName("alnli1"))
    val book=sc.parallelize(List(("spark",2),("hadoop",6),("hadoop",4),("spark",6)))
    val book1 : RDD[((String, Int), Int)]=book.map(x=>(x,1))
        book1.foreach(println)
    val book2 : RDD[(String, (Int, Int))]=book.mapValues(x=>(x,1))
       book2 .foreach(println)
}

结果:

map:???????????????????????????????????????????????????????????????????? mapValues:

??????????????????????????????????

 val RDD :RDD[(String, Int)]= sc.parallelize(List(("e",5),("c",3),("d",4),("c",2),("a",1)))
 //filterByRange:对RDD中的元素进?过滤,返回指定范围内的数据
 //filterByRange:该函数作用于键值对RDD,对RDD中的元素进行过滤,返回键在指定范围中的元素。
    val rdd3:RDD[(String, Int)]=RDD.filterByRange("a","c")
    rdd3.foreach(println) //(c,3) (a,1) (c,2)
    //filter使用一个布尔函数为RDD的每个数据项计算,并将函数返回true的项放入生成的RDD中
    val rdd4:RDD[(String, Int)]=RDD.filter(x=>(x._1 <= "c" && x._1 >= "a"))
    rdd4.foreach(println) //(c,3) (a,1) (c,2)
    //flatMapValues对参数进?扁平化操作,是value的值
    val RdD:RDD[(String, String)]= sc.parallelize(List(("e","6,5"),("c","3"),("d","10,11"),("c","2,7"),("a","2")))
    val rdd5:RDD[(String, String)]=RdD.flatMapValues(x=>(x.split(",")))
    rdd5.foreach(println)//(a,2)(d,10)(e,6)(c,2)(c,3)(c,7)(e,5)(d,11)
    println(rdd5.collect().toList)//List((e,6), (e,5), (c,3), (d,10), (d,11), (c,2), (c,7), (a,2))
    //flatMap是map的一种扩展。在flatMap中,我们会传入一个函数,该函数对每个输入都会返回一个集合(而不是一个元素),然后,flatMap把生成的多个集合“拍扁”成为一个集合。
    val rdd6:RDD[String]=RdD.flatMap(x=>(x._2.split(",")))
    println(rdd6.collect().toList)//List(6, 5, 3, 10, 11, 2, 7, 2)
    //map操作是针对集合的典型变换操作,它将某个函数应用到集合中的每个元素,并产生一个结果集合
    val rdd7:RDD[String]=RdD.map(x=>(x._2.split(",")).mkString(","))
    val rdd8:RDD[Array[String]] =RdD.map(x=>(x._2.split(",")))
    rdd7.foreach(println)//3 10,11 6,5 2 2,7

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-23 16:45:39  更:2021-08-23 16:46:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:57:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码