Spark编程

方法

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()

数据读取与保存

三类数据源

文件格式与文件系统

Spark SQL中的结构化数据

数据库与键值存储:Cassandra,HBase,Elasticsearch,JDBC源

Spark SQL

原文地址:https://www.cnblogs.com/cheungchein/p/8503302.html