Scala->加载文件夹数据
object My_Load_Files {
def main(args: Array[String]): Unit = {
val fronfile = new File("D:\\workspace03\\Files")
val files: Array[File] = fronfile.listFiles()
val writer = new PrintWriter("D:\\workspace03\\FileOutput\\file1")
//todo 注意 : .toBuffer 不能放在 .groupBy 前
println(files.map(file => Source.fromFile(file).getLines().toList).toBuffer)
//println("list(3个文件) 获取每行数据 为一个参数 转list ")
println(files.map(file => Source.fromFile(file).getLines().toList.flatMap(_.split(" ")).map((_, 1))).toBuffer)
println(" 按空格切割 成 个个 参数 ; 之后 计数 ; map((_,1)) 将 -参数- '_' 转为 -,1-")
println(files.map(file => Source.fromFile(file).getLines().toList.flatMap(_.split(" ")).map((_, 1)).groupBy(_._1)).toBuffer)
// println("分组, 按每个参数' _ '的 第一位 分组 me 里 有 -> ( 什么,什么,...)")
println(files.map(file=>Source.fromFile(file).getLines().toList.flatMap(_.split(" ")).map((_,1)).groupBy(_._1)
.mapValues(_.length)).toBuffer)
// println("映射值,理解为修改 values ; 将 每个键值对 以长度计数 -> 相当于 将 list 集合 参数 释放出来 求 分组中 个数")
println(files.map(file=>Source.fromFile(file).getLines().toList.flatMap(_.split(" ")).map((_,1)).groupBy(_._1)
.mapValues(_.length)).flatten.toBuffer)
//println("将 数据 扁平化, 将 Array(Map()) 数组 转为 Array() 数组,")
println(files.map(file=>Source.fromFile(file).getLines().toList.flatMap(_.split(" ")).map((_,1)).groupBy(_._1)
.mapValues(_.length)).toBuffer.flatten.groupBy(_._1))
//println("在 进行分组 ")
println(files.map(file=>Source.fromFile(file).getLines().toList.flatMap(_.split(" ")).map((_,1)).groupBy(_._1)
.mapValues(_.length)).flatten
.groupBy(_._1).mapValues(_.map(_._2)sum).toBuffer)
// println("此时在进行 聚合; 这时候不能按照长度求和,因为之前按照长度已经有确定的数值,此时用 sum 相加就可以了")
// 一行代码:
files.map(file=>Source.fromFile(file).getLines().toList.flatMap(_.split(" ")).map((_,1)).groupBy(_._1)
.mapValues(_.length)).toBuffer.flatten
.groupBy(_._1).mapValues(_.map(_._2)sum)
.foreach(writer.println)
writer.close()
}
}
版权声明:本文为qq_41776659原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。