【问题标题】:Not able to complete the scala Program to count the employee in each country无法完成 scala 计划以计算每个国家/地区的员工人数
【发布时间】:2016-10-05 18:29:48
【问题描述】:

我在scala中做一些基本的程序

import scala.io.Source
/* records.txt
USA,Surender
USA,Raja
CHINA,Yen
CHINA,Chen
INDIA,Adam
INDIA,Edward

*/

object ReadingFile 
{
def main (args :Array[String]){
val fileLoc = "D:\\inputfiles\\records.txt"
val lines = Source.fromFile(fileLoc).getLines().toList
val linesSplit = lines.map(x => x.split(","))
val linesMap = linesSplit.map(x => (x(0),x(1)))


 }

}

我不知道如何将 AGG 函数用于linesMap。我需要在代码中添加什么才能获得以下输出

USA,2
CHINA,2
INDIA,2

【问题讨论】:

标签: scala


【解决方案1】:
Source.fromFile(fileLoc)
      .getLines()
      .map(_.split(",")).
      .groupBy(_(0))
      .map(i => (i._1, i._2.size))

也可以使用mapValues:

Source.fromFile(fileLoc)
      .getLines()
      .map(_.split(","))
      .groupBy(_(0))
      .mapValues(_.size)

【讨论】:

  • mapValues替换最后的map
  • 不要认为你需要.toList
  • @TheArchetypalPaul,是的,我们可以使用iterator
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 2016-11-15
  • 1970-01-01
  • 1970-01-01
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多