SparkCore知识点及部分算子

SparkCore知识点及部分算子,第1张

SparkCore知识点及部分算子

Spark中最基本的数据抽象是RDD。
RDD(Resilient Distributed Dataset) 为d性分布式数据集。

RDD 的特性
  1. 一组分区
  2. 对于每个切片(分区),有一个计算函数
  3. 与其它RDD的依赖关系
  4. 分区器 K-V
  5. 优先计算位置
创建RDD的方式

创建RDD的方式有三种

  1. 集合中创建
  2. 外部存储系统的数据集创建
  3. 其它RDD创建
集合中创建

Spark主要提供了两种函数parallelize 和 makeRDD

    val value: RDD[Int] = sc.parallelize(List(1,2,3,4))
    val value1: RDD[Int] = sc.makeRDD(List(1,2,3,4))
外部存储系统的数据集创建
    //从外部存储系统获取RDD
    val value: RDD[String] = sc.textFile("E:\Dashuju\hadoop\SparkCore0821\input.txt")
    value.collect().foreach(println)

    //从hdfs获取rdd
    val value1: RDD[String] = sc.textFile("hdfs://hadoop102:8020/input")
    value1.collect().foreach(println)
从其它RDD创建
        val mapRdd: RDD[Int] = rdd.map(_ * 2)
Spark 算子 Trasformation

map() 映射

mapPartitions() 以分区为单位进行map

mapPartitionsWithIndex() 带分区号,执行mapPartitions

flatMap() 扁平化 与map *** 作类似,区别是函数返回值为一个集合,并且将每一个该集合的元素拆分出来放到新的RDD中。数据一进,迭代器出。

glom() 将RDD的每一个分区转换为数组

groupBy() 分组 按照传入函数规则分组,存在shuffle过程。

filter() 过滤 接收一个返回值为布尔类型的函数为参数。过滤出为true的值放入新的RDD中。可能产生数据倾斜。不影响分区。

sample() 采样
不放回取样模型-伯努利算法 sample(false,0~1,seed)
放回取样模型-泊松算法 sample(true,2,seed)

distinct去重 对元素内部去重

coalesce() 合并分区 默认不走shuffle,也可以设置参数true,执行shuffle
repartition重新分区 走shuffle
sorBy() 排序默认正序排序
pipe() 调用脚本

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5655785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存