scala版本的wordcount

package com.atguigu.bigdata.spark

import org.apache.spark.rdd.RDD

import org.apache.spark.{SparkConf, SparkContext}

object WordCount {
  def main(args: Array[String]): Unit = {
    // 1.local模式 创建 SparkConf对象, 并设置 App名字---设定spark计算框架的部署环境
    val config: SparkConf = new SparkConf().setMaster("local[*]").setAppName("WordCount")
    // 2. 创建SparkContext上下文对象
    val sc = new SparkContext(config)
    //println(sc)  //测试当前环境是否有问题

    //读取文件,将文件内容一行一行读取
    var lines: RDD[String] = sc.textFile("in/word.txt")
    //将一行行的数据分解成一个一个的单词
    val words: RDD[String] = lines.flatMap(_.split(" "))
    //将单词数据进行结构的转换----方便统计
    val wordToOne: RDD[(String, Int)] = words.map((_, 1))
    //对转换结构后的数据进行分组聚合
    val wordToSum: RDD[(String, Int)] = wordToOne.reduceByKey(_ + _)
    //获得统计结果
    var result: Array[(String, Int)] = wordToSum.collect()
    //将结果打印到控制台
    result.foreach(println)
  }

}

相关推荐