• spark中RDD的transformation&action


    简介:

    1transformation是得到一个新的RDD,方式很多,比如从数据源生成一个新的RDD,从RDD生成一个新的RDD

    2action是得到一个值,或者一个结果(直接将RDDcache到内存中)

    所有的transformation都是采用的懒策略,就是如果只是将transformation提交是不会执行计算的,计算只有在action被提交的时候才被触发。


    transformation操作:

      map(func):对调用mapRDD数据集中的每个element都使用func,然后返回一个新的RDD,这个返回的数据集是分布式的数据集

      filter(func): 对调用filterRDD数据集中的每个元素都使用func,然后返回一个包含使functrue的元素构成的RDD

    flatMap(func):map差不多,但是flatMap生成的是多个结果

    mapPartitions(func):map很像,但是map是每个element,而mapPartitions是每个partition

    mapPartitionsWithSplit(func):mapPartitions很像,但是func作用的是其中一个split上,所以func中应该有index

    sample(withReplacement,faction,seed):抽样

    union(otherDataset):返回一个新的dataset,包含源dataset和给定dataset的元素的集合

    distinct([numTasks]):返回一个新的dataset,这个dataset含有的是源dataset中的distinctelement

    groupByKey(numTasks):返回(K,Seq[V]),也就是hadoopreduce函数接受的key-valuelist

    reduceByKey(func,[numTasks]):就是用一个给定的reducefunc再作用在groupByKey产生的(K,Seq[V]),比如求和,求平均数

    sortByKey([ascending],[numTasks]):按照key来进行排序,是升序还是降序,ascendingboolean类型

    join(otherDataset,[numTasks]):当有两个KVdataset(K,V)(K,W),返回的是(K,(V,W))dataset,numTasks为并发的任务数

    cogroup(otherDataset,[numTasks]):当有两个KVdataset(K,V)(K,W),返回的是(K,Seq[V],Seq[W])dataset,numTasks为并发的任务数

    cartesian(otherDataset):笛卡尔积就是m*n,大家懂的


    action操作:

    reduce(func):说白了就是聚集,但是传入的函数是两个参数输入返回一个值,这个函数必须是满足交换律和结合律的

    collect():一般在filter或者足够小的结果的时候,再用collect封装返回一个数组

    count():返回的是dataset中的element的个数

    first():返回的是dataset中的第一个元素

    take(n):返回前nelements,这个士driverprogram返回的

    takeSample(withReplacementnumseed):抽样返回一个dataset中的num个元素,随机种子seed

    saveAsTextFilepath):把dataset写到一个textfile中,或者hdfs,或者hdfs支持的文件系统中,spark把每条记录都转换为一行记录,然后写到file

    saveAsSequenceFile(path):只能用在key-value对上,然后生成SequenceFile写到本地或者hadoop文件系统

    countByKey():返回的是key对应的个数的一个map,作用于一个RDD

    foreach(func):dataset中的每个元素都使用func

  • 相关阅读:
    上传文件到七牛云
    工具类
    SpringBoot 整合 JWT Token
    JWT
    SpringBoot使用RedisTemplate整合Redis
    poj1850 Code
    洛谷P1313 计算系数
    洛谷P1602 Sramoc问题
    —Libre#2009. 「SCOI2015」小凸玩密室
    2014-9-27 NOIP模拟赛
  • 原文地址:https://www.cnblogs.com/haibin168/p/9011905.html
Copyright © 2020-2023  润新知