码迷,mamicode.com
首页 > 其他好文 > 详细

Spark学习(三)Scala程序例子

时间:2020-01-28 13:46:18      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:运行   line   sort   fromfile   style   mfile   tab   new   first   

例一:对目录下的单词文件进行单词统计

/word/first.txt:                                                           /word/second.txt:                                                /word/third.txt:

技术图片   技术图片     技术图片

运行结果:

技术图片

import java.io.File;
import java.io.PrintWriter;
import scala.io.Source;
import collection.mutable.Map;
import collection.SortedMap;
object WordCount  {
    def  main(args: Array[String]): Unit = {
          var file=new File("/mnt/hgfs/D/Scala程序/word");   //word目录下有多个.txt文件
          var files=file.listFiles;     //把目录下文件全部列出
          var results=Map.empty[String,Int];    //定义空的映射
          for(file<-files){                 //遍历每个单词文件
              val data=Source.fromFile(file);       //将一个单词文件的内容读到data中
              val strs=data.getLines.flatMap{s=>s.split(" ")};   //读取每行后成为一个集合,将集合遍历后对每个元素(每行)执行分割操作,最后将所有单词放在一个集合
              strs.foreach{           //如果映射中存在键为:单词word,则值加1,否则将值设为1;
                  word=>if(results.contains(word))  results(word)+=1  else results(word)=1;
              }
          }
          //results.valuesIterator.reduceLeft((x,y) => if(x > y) x else y);
          results.foreach{       //遍历输出映射
              case(k,v)=>
              println(s"单词:$k\t次数:$v");
              // val inputFile=new PrintWriter("/mnt/hgfs/D/Scala程序/wordcount.txt")
              // inputFile.println(s"单词:$k\t次数:$v");
              // inputFile.close();
          }
    }        
}

例二:

Spark学习(三)Scala程序例子

标签:运行   line   sort   fromfile   style   mfile   tab   new   first   

原文地址:https://www.cnblogs.com/lq13035130506/p/12237771.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!