RDD 的操作的两大阶段(operation)

RDDA—>RDDB

从已经存在的RDD创建一个新的RDD

例:rddb=rdda.map(……..)

所有的tansformation并不会lazy(不会计算),只有transformation遇到action操作时才会计算


方法:

  1. map:

    map(func)

    将func函数作用在数据集(RDD)的每个元素上,生成一个新的分布式数据集(RDD)返回。
    image

  2. filter (过滤)

    filter(func)

    选出所有func函数返回值为true的元素,生成一个新的分布式数据集
    image

  3. flatMap(将所有元素合并,然后拆分。)

    flatMap(func)

    输入的item(每一个元素)能否被map到0或者多个Items输出,返回值是一个sequence()

  4. groupByKey
    image

    将根据key值,将相同的key的数据分发到一块
    image

  5. reduceBykey
    将相同的kEY 分发到一块并进行相应的计算(传进的函数)

image

  1. sortByKey(升序)

根据key进行排序然后输出

若想根据value 排序,可data.map(x:(x[1],x[0])).sortByKey.map(x:(x[1],x[0]))

  1. union

将两个数据集进行拼接

image

  1. distinct 去重
    去掉RDD中重复的值
  1. join:数据集连接

类似于sql中的关联查询
image


2.Action

将计算RDD后的值返回到Driver Program
image

  1. collect 输出
  2. count 获取元素个数
  3. reduce (func) 执行输出
  4. saveASTextFile 保存到文本
  5. foreach 遍历
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2018-2020 丁振莹
  • 访问人数: | 浏览次数:

你的每一分支持,是我努力下去的最大的力量 ٩(๑❛ᴗ❛๑)۶

支付宝
微信