1.28
今天继续做spark实验,学习rdd编程
1、RDD转换操作
filter(func):筛选出满足函数func的元素,并返回一个新的数据集
map(func):将每个元素传递到函数func中,并将结果返回为一个新的数据集
flatMap(func):与map()相似,但每个输入元素都可以映射到0或多个输出结果
groupByKey():应用于(K,V)键值对的数据集时,返回一个新的(K,Iterable)形式的数据集
reduceByKey(func):应用于(K,V)键值对的数据集时,返回一个新的(K,V)形式的数据集,其中每个值是每个key传递到函数func中进行聚合后的结果
2、RDD行动操作
count():返回数据集中的元素个数
collect():以数组的形式返回数据集中的所有元素
first():返回数据集中的第一个元素
take(n):以数组的形式返回数据集中的前n个元素
reduce(func):通过函数func(输入两个参数并返回一个值)聚合数据集中的元素
foreach(func):将数据集中的每个元素传递到函数func中运行
3、RDD分区
RDD是弹性分布式数据集,通常RDD很大,会被分成很多个分区,分别保存在不同节点上
4、RDD缓存(持久化)
在Spark中,RDD采用惰性求值的机制,每次遇到行动操作,都会从头开始执行计算。每次调用行动操作,都会触发一次从头开始的计算。这对于迭代计算而言,代价很大,迭代计算经常需要多次重复使用同一组数据。
缓存的意义:第二次动作操作时,只需要去使用第一次动作操作时缓存起来的值,避免重复计算
5、RDD键值对的操作和读写方法
1)键值对RDD的创建
val pairRDD = lines.flatMap(line => line.split("")).map(word => (word, 1))pairRDD.foreach(println)2)从文件中读取数据创建RDD
val textFile = sc.textFile(".....")

浙公网安备 33010602011771号