您的位置:首页 > 其它

Spark算子

2019-07-18 09:25 351 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_38325614/article/details/96423024

RDD中算子可分为两类:

1.trasformation(延迟加载/懒执行)

  • flatMap(); //进一多出
  • mapToPair();//将RDD转为KV格式
  • reduceByKey();//将相同的key分为一组,然后对每组key对应的value做处理
  • sortByKey();//根据key来做排序
  • filter();//过滤掉返回值为false的数据
  • sample();//抽样
  • collect();//回收
  • map(); //一次处理一条数据
  • mapPartition();//一次处理一个分区的数据
  • join();//合并两个RDD中相同key的数据,产生一个新的RDD,新的RDD中partition的数量为调用join方法的RDD的partition数量(RDD中的数据格式需为KV格式)
  • leftOuterJoin();//合并左边RDD的全部数据与右边RDD相同key的数据,产生一个新的RDD,新的RDD中partition的数量为调用join方法的RDD的partition数量(RDD需为KV格式)
  • rightOuterJoin();//合并右边RDD的全部数据与左边RDD相同key的数据,产生一个新的RDD,新的RDD中partition的数量为调用join方法的RDD的partition数量(RDD需为KV格式)
  • fullOuterJoin();//合并两个RDD中所有数据,产生一个新的RDD,新的RDD中partition的数量为调用join方法的RDD的partition数量(RDD需为KV格式)
  • union();//返回两个RDD的并集,产生新的RDD,新的RDD中partition的数量为两个RDDpartition数量之和(RDD需为KV格式,且两个RDD数据类型完全一致)
  • intersection();//返回两个RDD的交集
  • subtract();//返回两个RDD的差集
  • distinct();//去重

2.action

  • foreach();//遍历RDD,一次一条
  • foreachPartition();//遍历RDD,一次一个partition
  • count();//计数
  • first();//获取第一行数据,底层用take(1)实现的
  • take();//获取指定行数的数据

3.持久化算子

  • cache();//默认将RDD中的数据存在内存中,属于懒执行算子,需要action算子来触发,底层用presist()实现的(cache() = presist() = presist(StorageLeavel.MEMORY_ONLY))
  • presist();//可以指定持久化级别,默认MEMORY_ONLY(只在内存中),属于懒执行算子,需要action算子来触发

    _useDisk:是否使用磁盘
    _useMemory: 是否使用内存
    _useOffHeap: 是否使用对外内存
    _deserialized: 不序列化
    _replication: 副本数,默认是1
  • checkpoint: 将数据存储在磁盘中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: