package ***
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
class SparkWC {
}
object SparkWC {
def main(args: Array[String]): Unit = {
// 文件信息配置类,并设置应用程序名称(setAppName)
// local[2]:本地启用两个线程模拟集群运行人物
// local[*]:本地有多少个空闲线程就启用多少个线程运行任务
val conf: SparkConf = new SparkConf().setAppName("SparkWC").setMaster("local[*]")
// 创建Spark的上下文对象,也是他提交任务到集群的入口类
val sc: SparkContext = new SparkContext(conf)
// 读取数据
val lines: RDD[String] = sc.textFile(args(0))
// 处理数据
val words: RDD[String] = lines.flatMap(_.split(" "))
val tup: RDD[(String, Int)] = words.map((_, 1))
val reduced: RDD[(String, Int)] = tup.reduceByKey(_ + _)
val res: RDD[(String, Int)] = reduced.sortBy(_._2, false)
// 这里的false是倒序,如果是true则相反
println(res.collect.toBuffer)
}
}
如果在本地运行需要指定路径