欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spark编程

程序员文章站 2022-06-25 13:13:53
persist(): 把数据以序列化的形式缓存在JVM的堆空间中; cache(): 与使用默认存储级别调用persist()是一样的; collect(): 只有当你的整个数据集能在单台机器的内存中放得下时,才能使用collect(),因此,collect() 不能用在大规模数据集上;把RDD 筛 ......

persist(): 把数据以序列化的形式缓存在JVM的堆空间中;

cache(): 与使用默认存储级别调用persist()是一样的;

collect(): 只有当你的整个数据集能在单台机器的内存中放得下时,才能使用collect(),因此,collect() 不能用在大规模数据集上;把RDD 筛选到一个很小的规模,并且你想在本地处理这些数据时;

转化操作:

map()

filter()

flatMap()

distinct()

union()

intersection() 需要数据混洗

subtract() 需要数据混洗

cartesian() 笛卡尔积

行动操作:

reduce()  reduce()与fold()方法是对同种元素类型数据的RDD进行操作,即必须同构。其返回值返回一个同样类型的新元素;

fold()  fold()与reduce()类似,接收与reduce接收的函数签名相同的函数,另外再加上一个初始值作为第一次调用的结果;

aggregate()  可以对两个不同类型的元素进行聚合,即支持异构;

take()  返回RDD 中的n 个元素,并且尝试只访问尽量少的分区,因此该操作会得到一个不均衡的集合;

top()  使用数据的默认顺序,但我们也可以提供自己的比较函数,来提取前几个元素;

takeSample(withReplacement, num,seed)  可以让我们从数据中获取一个采样,并指定是否替换。

 

键值对操作:

reduceByKey():合并相同的键;

foldByKey():

combineByKey():基于键进行聚合;

mapValues():对每个值应用一个函数;

flatMapValues():对每个值应用一个返回迭代器的函数;

keys()  values()

subtractByKey():删掉RDD中键与other RDD中的键相同的元素;

sortByKey():返回一个依据键排序的rdd;

partitionBy():

 

repartition():把数据通过网络进行混洗,并创建出新的分区集合;

coalesce():优化版的repartiton()

 

groupByKey():依据键是否相同进行分组;

groupBy():可以用于未成对的数据上,也可以根据除键相同之外的条件进行分组;

cogroup():将两个RDD 中拥有相同键的数据分组到一起;可应用于三个及以上的RDD;值的类型不必相同;

 

join()  rightOuterJoin()  leftOuterJoin()

 

collectAsMap()