spark pairRDD基本操作(三)——附带wordcount程序
2017-01-06 11:50
615 查看
spark pairRDD基本操作(三)——附带wordcount程序
由于pairRDD也是RDD,或者说是RDD的子类,所以pairRDD也有RDD的功能,下面是一个综合的例子,首先使用了filtermap,然后是一个简单的mapreduce程序,最后是一个简单的wordcount小程序。本文主要参考书籍《O Reilly Learning spark》
好,下面上货。
val a = sc.parallelize(Array((1,2),(3,4),(3,6))) a.collect().foreach(x => print(x + " ")) println(" ") //进行filter操作 val b = a.filter({ case (key,value) => {value<5 && key < 2} }) b.collect().foreach(x => print(x + " ")) println(" ") val c = sc.parallelize(Array(("panda",0),("pink",3),("pirate",3),("panda",1),("pink",4))) c.collect().foreach(x => print(x + " ")) println(" ") val d = c.mapValues(x => (x,1)) d.collect().foreach(x => print(x + " ")) println(" ") val e = d.reduceByKey((x,y) => (x._1 + y._1, x._2 + y._2)) e.collect().foreach(x => print(x + " ")) println(" ") //wordcount exmaple val input = sc.textFile("hdfs://192.168.1.221:9000/wordcountinput/123") input.collect().foreach(x => print(x + ",")) println(" ") //分步生成 val words = input.flatMap(x => x.split(" ")) words.collect().foreach(x => print(x + ",")) println(" ") val result1 = words.map(x => (x, 1)) result1.collect().foreach(x => print(x + " ")) println(" ") val result2 = result1.reduceByKey((x,y)=>x+y) result2.collect().foreach(x => print(x + " ")) println(" ") //直接生成 val result3 = input.flatMap(x => x.split(" ")).map(x => (x,1)).reduceByKey((x,y)=>x + y) result3.collect().foreach(x => print(x + " ")) println(" ")
下面是运行截图:
其中的mapreduce的解释在书中用图示进行了说明,这里不再赘述,请看图:
相关文章推荐
- Spark Pair RDD 基本操作
- 用SBT编译Spark的WordCount程序
- spark内核揭秘-09-RDD的count操作 触发Job全生命周期-02
- spark RDD 基本操作
- Spark算子:RDD基本转换操作(mapPartitions、mapPartitionsWithIndex)
- Spark学习之键值对(pair RDD)操作(3)
- Spark on Yarn上实现WordCount程序
- [spark]Spark算子:RDD基本转换操作(5)–mapPartitions、mapPartitionsWithIndex
- sbt 编译spark 的wordcount 程序
- spark on yarn 出现的问题【测试wordcount程序遇到的错误,ipc.client连接到yarn的端口失败】
- Spark Programming by Java——RDD基本操作
- spark内核揭秘-09-RDD的count操作 触发Job全生命周期-01
- Apache Spark MLlib学习笔记(二)Spark RDD简介和基本操作
- 将java开发的wordcount程序部署到spark集群上运行
- Spark wordcount 编译错误 -- reduceByKey is not a member of RDD
- spark内核揭秘-09-RDD的count操作 触发Job全生命周期-02
- Spark在Yarn上运行Wordcount程序
- spark streaming 的wordcount程序,从hdfs上读取文件中的内容并计数
- Spark学习之键值对(pair RDD)操作(3)
- Hadoop:第二个程序操作HDFS -> 【获取Datanode名】【写文件】【WordCount计数】