用Scala写一个wordcount
时间: 2024-04-30 10:23:59 浏览: 11
好的,以下是用Scala写一个wordcount的代码:
```scala
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Word Count")
val sc = new SparkContext(conf)
val textFile = sc.textFile(args(0))
val counts = textFile.flatMap(line => line.split(" "))
.map(word => (word, 1))
.reduceByKey(_ + _)
counts.saveAsTextFile(args(1))
sc.stop()
}
}
```
请注意,这个程序依赖于Apache Spark框架,请先确保你已经安装了Spark并且已经设置好了环境变量。
相关问题
用scala写一段wordcount
以下是一个简单的使用Scala实现Word Count的程序:
```scala
import org.apache.flink.api.scala._
object WordCount {
def main(args: Array[String]): Unit = {
// 创建一个执行环境
val env = ExecutionEnvironment.getExecutionEnvironment
// 读取文本文件并将每行拆分为单词
val input = env.readTextFile("path/to/textfile")
val words = input.flatMap(line => line.split("\\s+"))
// 计算每个单词的出现次数
val counts = words.map(word => (word, 1))
.groupBy(0)
.sum(1)
// 打印结果
counts.print()
}
}
```
运行以上代码,可以读取指定路径下的文本文件,对文件中的每个单词进行计数,并输出每个单词出现的次数。
利用scala语言写一个wordcount
好的,下面是一个简单的Scala代码实现Word Count:
```scala
import scala.io.Source
object WordCount {
def main(args: Array[String]) {
val filename = args(0)
val source = Source.fromFile(filename)
val lines = source.getLines().toList
source.close()
// 使用flatMap和split方法将所有单词展开成一个List
val words = lines.flatMap(_.split("\\W+"))
// 使用groupBy方法将相同的单词分组,并使用mapValues方法计算每个单词的数量
val wordCount = words.groupBy(identity).mapValues(_.length)
// 将结果按照单词数量倒序排列并打印输出
wordCount.toSeq.sortWith(_._2 > _._2).foreach {
case (word, count) => println(s"$word: $count")
}
}
}
```
说明:
1. 代码首先读取命令行参数中的文件名,并使用Scala的`Source`类从文件中读取所有行,并将它们存储在一个列表中。
2. 使用`flatMap`和`split`方法将所有行分成单个单词,并将它们展开成一个列表。
3. 使用`groupBy`方法将相同的单词分组,并使用`mapValues`方法计算每个单词的数量。
4. 将结果按照单词数量倒序排列,并使用`foreach`方法打印输出。