
一个Application由一个Driver和若干个Job构成,一个Job由多个Stage构成,一个Stage由多个没有Shuffle关系的Task组成。
读取文件中的所有内容,计算每个单词出现的次数
- object WorldCountScala {
-
- def main(args: Array[String]): Unit = {
- //第一步 创建sparkContext
- val conf = new SparkConf()
- conf.setAppName("WorldCountScala") //设置任务名称
- .setMaster("local") //表示本地执行
- val sc = new SparkContext(conf)
- //第二步 加载数据
- val lineRDD = sc.textFile("D:\\bigdata/hello.txt")
- //第三步 对数据进行切割
- val wordRDD = lineRDD.flatMap(_.split(" "))
- //第四步 迭代words,把每个word转成(word,1)这种形式
- // val pairRDD = wordRDD.map(word=>(word, 1))
- val pairRDD = wordRDD.map((_, 1))
- // 根据key进行分组聚合
- val wordCountRDD = pairRDD.reduceByKey(_ + _)
- //将结果打印到控制台
- wordCountRDD.foreach(wordCount => println(wordCount._1 + "——" + wordCount._2))
- //停止sparkContext
- sc.stop()
- }
运行结果:
