栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

SparkCore知识点及部分算子

SparkCore知识点及部分算子

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

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\1.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() 调用脚本

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/653684.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号