Spark初体验(2)--WordCount详解

来源:互联网 发布:手机淘宝管理评价在哪 编辑:程序博客网 时间:2024/05/22 11:34

WordCount代码如下:

import org.apache.spark.{SparkContext, SparkConf}/** * Created by zhangph on 2015/11/25. */object WordCount {  def main (args: Array[String]) {    if(args.length < 1){      System.err.println("Usage: <file>")      System.exit(1);    }    val conf = new SparkConf();    val sc = new SparkContext(conf)    val line = sc.textFile(args(0))        val result = line.flatMap(_.split(" ")).map(x => (x(1), 1)).reduceByKey(_+_)    //result.collect().foreach(println)    result.saveAsTextFile(args(1))    sc.stop()  }}
val line = sc.textFile(args(0))  

使用textFile函数将文件转换为一个RDD,该函数采用Hadoop中的TextInputFormat解析输入数据,textFile中的每个Hadoop Block相当于一个RDD分区。

val result = line.flatMap(_.split(" ")).map(x => (x(1), 1)).reduceByKey(_+_)

flatMap将加载的数据使用空格分割后生成新的RDD;
map将每条记录加1之后生成新的RDD;
reduceByKey将key相同的关键字的数据集合到一起进行函数运算。

result.collect().foreach(println)result.saveAsTextFile(args(1))

Actions 算子
第一句是将MapReduce的结果先toArray然后再输出每个元素;
第二句是将结果写入到文件中。

The only way to survive was to enjoy the good moments and not dwell too much on the bed.

0 0
原创粉丝点击