import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object SprakWordCount {
def main(args: Array[String]): Unit = {
//参数检查
if (args.length < 2) {
System.err.println("Usage: myWordCount <input> <output>")
System.exit(1)
}
//设置spark配置
val conf: SparkConf = new SparkConf().setAppName("myWordCount") //.setMaster("local[*]")
//
val sc:SparkContext=new SparkContext(conf)
//读取输入数据 s
val lines=sc.textFile(args(0))
//处理数据
//切分压平
val words: RDD[String] = lines.flatMap(_.split(","))
//将单词和1组合在一起 让每个单词1都出现一次
val wordone: RDD[(String, Int)] = words.map((_, 1))
//聚合 单词计数
//在一个(K,V)的RDD上调用,返回一个(K,V)的RDD,使用指定的reduce函数,
// 将相同key的值聚合到一起,与groupByKey类似,
// reduce任务的个数可以通过第二个可选的参数来设置
val reduced: RDD[(String, Int)] = wordone.reduceByKey(_ + _)
//排序 按照单词出现的次数 降序排序
val ans = reduced.sortBy(_._2, false)
ans.saveAsTextFile(args(1))
// println(ans.collect().toBuffer)
//关闭
sc.stop()
}
}
spark wordcount
最新推荐文章于 2025-12-07 00:41:20 发布
本文介绍了一种使用Apache Spark实现WordCount的详细过程,包括数据读取、处理、聚合及排序,展示了Spark在大规模数据处理上的高效性。
7023

被折叠的 条评论
为什么被折叠?



