412RDD操作 1.转换操作 表常用的RDD转换操作AP 操作 含义 filter(func)筛选出满足函数func的元素,并返回一个新的数据 集 map(func)将每个元素传递到函数func中,并将结果返回为 个新的数据集 flatMap(inc)与mapO相似,但每个输入元素都可以映射到0或多 个输出结果 group Bykeyo应用于(K)键值对的数据集时,返回一个新的(K tenable)形式的数据集 reduce ByKey(fnc)应用于(KV键值对的数据集时,返回一个新的(K V)形式的数据集,其中每个值是将每个key传递到 函数func中进行聚合后的结果 Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.1.2 RDD操作 操作 含义 filter(func) 筛选出满足函数func的元素,并返回一个新的数据 集 map(func) 将每个元素传递到函数func中,并将结果返回为一 个新的数据集 flatMap(func) 与map()相似,但每个输入元素都可以映射到0或多 个输出结果 groupByKey() 应用于(K,V)键值对的数据集时,返回一个新的(K, Iterable)形式的数据集 reduceByKey(func) 应用于(K,V)键值对的数据集时,返回一个新的(K, V)形式的数据集,其中每个值是将每个key传递到 函数func中进行聚合后的结果 表 常用的RDD转换操作API 1. 转换操作
412RDD操作 1.转换操作 咐 filter(func):筛选出满足函数func的元素,并返回一个新的数据集 >> lines= sc textFile(file: ///usr/local/spark/mycode/rdd/word. txt") >>>lines With Spark= lines. filter(lambda line: " Spark"in line > lines With Spark foreach(print Spark is better Spark is fast word txt RDD(lines) RDD(lines withSpark) Hadoop is good Hadoop is good Spark is fast" Spark is fast sc. textFileo''Spark is fast lines. filter Spark is better" Spark is better Spark is better" 图fter(操作实例执行过程示意图 Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.1.2 RDD操作 •filter(func):筛选出满足函数func的元素,并返回一个新的数据集 >>> lines = sc.textFile("file:///usr/local/spark/mycode/rdd/word.txt") >>> linesWithSpark = lines.filter(lambda line: "Spark" in line) >>> linesWithSpark.foreach(print) Spark is better Spark is fast word.txt RDD(lines) sc.textFile() Hadoop is good Spark is fast Spark is better RDD(linesWithSpark) lines.filter() "Hadoop is good" "Spark is fast" "Spark is better" "Spark is fast" "Spark is better" 图 filter()操作实例执行过程示意图 1. 转换操作
412RDD操作 1.转换操作 .map(func) map(unc)操作将每个元素传递到函数unc中,并将结果返回为一个新的数据集 >>>data=[1,2,34,5] >>rdd 1= scparallelize(data) rdd2=rdd1. map(lambda x. X+ 10) >> rdd2. foreach(print) 11 RDD(rddl) RDD(rdd2) 13 12 rdd I 15 [12,34, scparallelize(data) map(lambda x x+10) 13 4 14 图mapO操作实例执行过程示意图 Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.1.2 RDD操作 •map(func) map(func)操作将每个元素传递到函数func中,并将结果返回为一个新的数据集 >>> data = [1,2,3,4,5] >>> rdd1 = sc.parallelize(data) >>> rdd2 = rdd1.map(lambda x:x+10) >>> rdd2.foreach(print) 11 13 12 14 15 图 map()操作实例执行过程示意图 1. 转换操作 data RDD(rdd1) [1,2,3,4,5] 1 2 3 sc.parallelize(data) 4 5 RDD(rdd2) 11 12 13 14 15 rdd1. map(lambda x:x+10)
412RDD操作 1.转换操作 .map(func) 另外一个实例 >lines =Sc textFile(file: /usr/local/spark/mycode/rdd/word. txt >words= lines. map (lambda line line split(D) >> words foreach(print) THadoop, is, ' good] SPark, is, fast] TSpark, is, better word. txt RDD(lines) RDD(words) Hadoop is good "Hadoop is good" [Hadoop", " is", "good" Spark is fast SctextFile("Spark is fast lines. mapo I"Spark", "is"," fast"] Spark is better "Spark is better I"Spark","is", "better"] 图mapO操作实例执行过程示意图 Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.1.2 RDD操作 •map(func) >>> lines = sc.textFile("file:///usr/local/spark/mycode/rdd/word.txt") >>> words = lines.map(lambda line:line.split(" ")) >>> words.foreach(print) ['Hadoop', 'is', 'good'] ['Spark', 'is', 'fast'] ['Spark', 'is', 'better'] 另外一个实例 图 map()操作实例执行过程示意图 1. 转换操作 word.txt RDD(lines) sc.textFile() Hadoop is good Spark is fast Spark is better lines.map() "Hadoop is good" "Spark is fast" "Spark is better" RDD(words) ["Hadoop","is","good"] ["Spark","is","fast"] ["Spark","is","better"]
412RDD操作 1.转换操作 咐 flat Map(func) >> ines= SC textFile(file: //usr/local/spark/mycode/rdd/word. txt") words= lines. flat Map(lambda line line split(")) word. txt RDD(lines) RDD( wordArray) Hadoop is good 第1步mapO [Hadoop", "is","good"I Spark is fast sc: textFile.)(Spark is fast" Lines. map (lambda lineline. splite"> ["Spark", "is", "fast"I Spark is better "Spark is better "Spark","is", "better"] lines. flat Map(lambda line linesplit("")) RDD(words) Hadoop Spark fast" 第2步:拍扁(fat) 把map(操作得到的 wordArray中 better" 的每个元素“拍扁”(fat),就得 到了 flatMan操作的结果 words 图 flatMapo操作实例执行过程示意图 Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn
《Spark编程基础》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.1.2 RDD操作 •flatMap(func) >>> lines = sc.textFile("file:///usr/local/spark/mycode/rdd/word.txt") >>> words = lines.flatMap(lambda line:line.split(" ")) 图 flatMap()操作实例执行过程示意图 1. 转换操作 word.txt RDD(lines) sc.textFile(...) Hadoop is good Spark is fast Spark is better lines.map(lambda line:line.split(" ")) "Hadoop is good" "Spark is fast" "Spark is better" ["Hadoop","is","good"] ["Spark","is","fast"] ["Spark","is","better"] "Hadoop" "is" "good" "Spark" "is" "fast" "Spark" "is" "better" RDD(wordArray) lines.flatMap(lambda line:line.split(" ")) 把map()操作得到的wordArray中 的每个元素“拍扁”(flat),就得 到了flatMap()操作的结果words RDD(words) 第1步:map() 第2步:拍扁(flat)