Spark RDD
新建工程
-
修改 pom scala 版本2.11.8 spark 版本 2.4.3
-
准备 input.txt 文件
-
运行 wordcount
SparkRDD 详解
1.SparContext
spark代表和一个集群的连接
spark shell 中已经为我们准备好 sparkContext
2.RDDs
弹性分布式数据集
Spark 中所有的计算都是通过RDD的创建,转换,操作完成的
- 如何得到一个RDD
- 1 通过加载外部数据集
如下 lines 就是一个数据集,一个RDD是由一个或多个分片组成的(Partitions)
- 2.通过Spark的parallelize方法
RDD 转换操作 rdd- >rdd
只做转换不产生结果
- map 接受一个函数,并应用到rdd的每一项,产生新的rdd
- filter 通过函数过滤RDD
- flatMap 摊平操作 将原本每行数据中的单词 最终整合在一个rdd中
RDD 集合运算
-
distinct 去重
-
union 联合
-
intersection 交集
-
substract 找出 rdd1 里面rdd2没有的元素
Action 操作
Action是结束运算,最终生成一个结果,将结果返回
-
reduce 接受一个函数 作用的rdd两个类型相同的元素上并返回新的元素
-
Collect 遍历整个rdd 并返回最终结果
-
take(n) 返回rdd的个元素
-
top(n) 返回rdd的top个元素
-
foreach 配合 println 使用
元组 RDDs
-
map方法 构建
-
手动构建
元组 RDDs api
- reduceByKey 接受一个函数 计算 key 相同的value
例如 wordcount中的
- groupByKey
- mapValues(func) 作用于RDD 每一个元组的value
- flatMapValues(func) 根据某个func 不全或过滤values
- keys
- values
- sortByKey
-combineByKey (重点)
最常使用的基于key的聚合函数 返回类型可以与输入类型不同