大数据-玩转数据-Spark-RDD编程基础-RDD操作(python版)
RDD操作包括两种类型:转换(Transformation)和行动(Action)
1、转换操作
RDD每次转换操作都会都会产生新的RDD,供下一转换或行动使用,所以叫惰性求值,转换只记录了轨迹,不执行,行动才执行。
常用的RDD转换操作API
filter(func) : 筛选出满足func函数的元素,并返回一个新的数据集
map(func):将每个元素传递到函数func中,并将结果返回已个新的数据集
flatMap(func):与map(func)相似,但每个输入元素都可映射到0或多个输出结果
groupByKey():应用到键值对的数据集时,返回一个新的(K,Iterable)形式的数据集
reduceByKey(func):应用于(K,V)键值对的数据集时,返回一个新的键值对的数据集(K,V),其中每个值都是将每个key传递到func中进行聚合后的集合
(1)、filter(func)
>>> lines = sc.textFile("file:///home/hadoop/temp/word.txt")
>>> linesWithSpark = lines.filter(lambda line:"Spark" in line)
>>> linesWithSpark.foreach(print)
(2)、map(func)
data = [1,2,3,4,5]
rdd1 = sc.parallelize(data)
rdd2 = rdd1.map(lambda x:x+1)
rdd2.foreach(print)
>>> lines = sc.textFile("file:///home/hadoop/temp/word.txt")
>>> words = li