(2) 单词统计Scala 代码
时间: 2024-01-02 22:05:14 浏览: 35
以下是一个简单的单词统计 Scala 代码示例:
```scala
import scala.io.Source
object WordCount {
def main(args: Array[String]) {
if (args.length != 1) {
println("Usage: WordCount <input file>")
sys.exit(1)
}
val filename = args(0)
val input = Source.fromFile(filename)
val words = input.getLines.flatMap(_.split("\\W+"))
val wordCount = words.foldLeft(Map.empty[String, Int]) {
(count, word) => count + (word -> (count.getOrElse(word, 0) + 1))
}
wordCount.foreach { case (word, count) => println(s"$word: $count") }
}
}
```
该代码读取一个文件的名称作为输入参数,然后使用 `Source.fromFile` 方法从文件中读取文本内容。接着,将文本内容拆分成单词,并计算每个单词出现的次数。最后,将每个单词及其出现次数打印到标准输出。
相关问题
flink sql scala代码
根据提供的引用内容,flink sql scala代码是指使用Scala编写的Flink SQL代码。Flink SQL是Flink的一种查询语言,它允许用户使用类SQL语句来查询和操作数据流和数据表。下面是一个简单的flink sql scala代码的例子:
```scala
import org.apache.flink.streaming.api.scala._
import org.apache.flink.table.api.scala._
import org.apache.flink.table.api.TableEnvironment
val env = StreamExecutionEnvironment.getExecutionEnvironment
val tEnv = TableEnvironment.getTableEnvironment(env)
val stream = env.socketTextStream("localhost", 9999)
val table = stream.flatMap(_.split(" ")).map(word => (word, 1)).toTable(tEnv, 'word, 'count)
val result = table.groupBy('word).select('word, 'count.sum as 'count)
result.toRetractStream[(String, Long)].print()
env.execute("Flink SQL Scala Example")
```
这段代码使用了Flink的Table API和Flink SQL来统计输入流中每个单词出现的次数,并将结果打印到控制台上。需要注意的是,这段代码需要引入Flink Table和Flink Scala的依赖库。
flink词频统计scala
下面是使用 Flink 和 Scala 进行词频统计的示例代码:
```scala
import org.apache.flink.api.scala._
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
object WordCount {
def main(args: Array[String]): Unit = {
val env = StreamExecutionEnvironment.getExecutionEnvironment
// 读取文本文件
val textStream = env.readTextFile("path/to/your/text/file")
// 转换成单词流
val wordStream = textStream.flatMap(_.split("\\s+"))
// 统计单词数量
val countStream = wordStream.map((_, 1)).keyBy(0).sum(1)
// 打印结果
countStream.print()
env.execute("WordCount")
}
}
```
在上面的示例代码中,我们首先创建了一个 `StreamExecutionEnvironment` 对象,然后使用 `readTextFile` 方法从指定的文本文件中读取数据,接着使用 `flatMap` 方法将每行文本数据转换成单词流,再使用 `map` 方法将每个单词映射成一个 `(单词, 1)` 的键值对,最后使用 `keyBy` 方法将键值对按照键进行分组,再使用 `sum` 方法对值进行累加,得到每个单词的数量。最后,我们使用 `print` 方法将结果打印出来,并且调用 `env.execute` 方法启动任务的执行。