Spark底层基于scala,所以用scala编写
object WordCount { def main(args: Array[String]): Unit = { //得到spark的conf val conf = new SparkConf().setAppName("WordCount") //获取SparkContext入口 val context = new SparkContext(conf) //spark写Spark程序,就是对抽象的神奇的大集合【RDD】编程,调用它高度封装的API //使用SparkContext创建RDD //SparkContext是用来创建最原始的RDD的 val word: RDD[String] = context.textFile(args(0)) //开始对word操作,map压平 val words: RDD[String] = word.flatMap(_.split(" ")) //对压平后的单词变成元组+1 val wordAndOne: RDD[(String, Int)] = words.map((_, 1)) //开始聚合相同的key的values相加 val countWord: RDD[(String, Int)] = wordAndOne.reduceByKey(_ + _) //对聚合后的values进行排序 val count = countWord.sortBy(_._2, false) //Action算子,会触发任务执行 //将数据保存到HDFS count.saveAsTextFile(args(1)) context.stop() } }