import org.apache.flink.api.scala._ object WordCount { def main(args: Array[String]): Unit = { //第1步:建立执行环境 val env = ExecutionEnvironment.getExecutionEnvironment //第2步:创建数据源 val text = env.readTextFile("/usr/local/hadoop/books/book/book_leixing.txt") //第3步:对数据集指定转换操作 val counts = text.flatMap { _.toLowerCase.split(" ") } .map { (_, 1) } .groupBy(0) .sum(1) // 第4步:输出结果 counts.print() } }
时间: 2024-02-14 17:24:02 浏览: 24
这是一个使用 Apache Flink 实现的 WordCount 程序。程序的主要逻辑分为四步:
1. 建立执行环境(Execution Environment)
2. 创建数据源,读取文本文件
3. 对数据集进行指定的转换操作,包括将文本转换为小写字母、按照单词分割、计数、分组等操作
4. 输出结果,将结果打印到控制台
这个程序可以统计指定文本文件中每个单词出现的次数。
相关问题
用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()
}
}
```
运行以上代码,可以读取指定路径下的文本文件,对文件中的每个单词进行计数,并输出每个单词出现的次数。
flink scala版
Flink 是一个开源的分布式流处理框架,支持实时数据流和批处理数据,并且提供了 Java 和 Scala 两种编程语言的 API。你可以使用 Scala 编写 Flink 应用程序,Scala 版本的 Flink API 在功能上和 Java 版本是一致的,只是语法上稍有不同。以下是一个使用 Scala 编写 Flink 应用程序的示例:
```scala
import org.apache.flink.api.scala._
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
object WordCount {
def main(args: Array[String]) {
val env = StreamExecutionEnvironment.getExecutionEnvironment
val text = env.socketTextStream("localhost", 9999)
val counts = text.flatMap { _.toLowerCase.split("\\W+") filter { _.nonEmpty } }
.map { (_, 1) }
.keyBy(0)
.sum(1)
counts.print()
env.execute("Scala WordCount Example")
}
}
```
这个示例程序从一个 socket 中读取文本数据流,对数据进行单词计数,并将计数结果打印到控制台。你可以根据自己的需求修改这个程序,实现各种复杂的数据处理任务。