Spark -- WordCount程序

Spark -- WordCount程序

package com.bigdata.example

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


object WordCount {
  def main(args: Array[String]): Unit = {
    /**
      * 创建spark的配置对象。设置spark程序运行时候的配置空间
      * setAppName 用来设置APP的名称
      * setMaster 用来设置程序的运行模式,本地 还是 集群。
      *     本地可以设置local【*】,
      *     集群可以以Standalone 模式 ,需要使用sparl://host:port
      *
      */
    val conf = new SparkConf()
    conf.setAppName("WordCount")
    conf.setMaster("lical[2]")
    /**
      *  sc 是 spark程序的唯一入口
      *  sc核心作用,初始化 spark 和核心入口,所有组件,包括DAGScheduler 、 Taskscheduker
      *  还负责 spark程序向master 注册程序
      */
    val sc = new SparkContext(sc)

    /**
      * 根据具体的数据源,通过sparkcontext创建rdd
      * rdd 的创建、外部来源,通过Scala的集合使用然而产生rdd,通过rdd产生rdd
      */
    var line = sc.textFile("localPath",2)
    /**
      * 用函数进行计算,统计词频
      */
    var words = line.flatMap(_.split(",")).flatMap(_.split(" ")).filter(word =>  word != "   ")

    var pairs = words.map(word => (word,1))

    var wordCounts = pairs.reduceByKey(_+_)
    //开始计算
    var result = wordCounts.collect()
    //循环
    result.foreach(println(_))

    sc.stop()
   }
}

猜你喜欢

转载自www.cnblogs.com/Tonyzczc/p/10424417.html