关于scala.collection.mutable.Map写入的问题

在scala中可变Map写入,使用
val no2ID = scala.collection.mutable.Map[Int,String]()
no2ID += (1 -> "something")

而在以下代码中,Map不能添加元素

val no2ID = scala.collection.mutable.Map[Int,String]()
sc.textFile(conf).foreach(line=>{
val splits = line.split(“,”)
val no = splits(0).trim.toInt
val ID = splits(1)
no2ID += (no -> ID)
})
其中conf文件为数字和对应的人名

把RDD使用collect转化成Array后,可以向Map添加元素

val no2ID = scala.collection.mutable.Map[Int,String]()
sc.textFile(conf).collect().foreach(line=>{
val splits = line.split(“,”)
val no = splits(0).trim.toInt
val ID = splits(1)
no2ID += (no -> ID)
})

好的,您的需求是使用Scala编写一个独立应用程序,统计每个用户的粉丝数量,并将结果写入文件。为了实现这个功能,我会建议您按照以下步骤进行操作: 1. 首先,使用Scala编写一个程序,通过API获取用户的粉丝数量。您可以使用Twitter API或其他社交媒体平台的API来实现这个功能。 2. 接下来,您需要将获取到的粉丝数量进行统计。您可以使用Scala的集合框架,比如Map来保存每个用户的粉丝数量,并对其进行累加操作。 3. 最后,您需要将统计结果写入文件中。您可以使用Scala的文件系统API来实现这个功能,将结果写入到文本文件中。 以下是一个简单的Scala代码示例,用于实现这个功能,供您参考: ``` import scala.io.Source import java.io._ object UserFansCount { def main(args: Array[String]) { val inputFilePath = args(0) val outputFilePath = args(1) val userFansMap = collection.mutable.Map[String, Int]() for (line <- Source.fromFile(inputFilePath).getLines()) { val fields = line.split(",") val user = fields(0) val fansCount = fields(1).toInt val currentFansCount = userFansMap.getOrElse(user, 0) userFansMap.put(user, currentFansCount + fansCount) } val writer = new PrintWriter(new File(outputFilePath)) for ((user, fansCount) <- userFansMap) { writer.write(s"$user,$fansCount\n") } writer.close() } } ``` 在这个示例中,我们首先从命令行参数中获取输入文件路径和输出文件路径。然后,我们使用Scala的集合框架Map来保存每个用户的粉丝数量,并对其进行累加操作。最后,我们将结果写入到输出文件中。 请注意,这只是一个简单的示例代码,您可能需要根据具体的需求进行修改和优化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值