import org.apache.flink.api.scala._object SumCount { def main(args: Array[String]): Unit = { // 第1步:建立执行环境 val env = ExecutionEnvironment.getExecutionEnvironment // 第2步:创建数据源 val data = env.fromElements( ("classA", 80), ("classA", 85), ("classB", 90), ("classB", 95), ("classB", 92) ) // 第3步:对数据集指定转换操作 val counts = data .groupBy(0) .sum(1) // 第4步:输出结果 counts.print() }} 把数据源改为读取文档数据
时间: 2024-03-17 07:41:10 浏览: 70
可以将第2步中的数据源改为从文档中读取数据,具体代码如下:
```scala
import org.apache.flink.api.scala._
import java.nio.file.Paths
object SumCount {
def main(args: Array[String]): Unit = {
// 第1步:建立执行环境
val env = ExecutionEnvironment.getExecutionEnvironment
// 第2步:创建数据源
val filePath = Paths.get("path/to/file.txt")
val data = env.readTextFile(filePath.toString)
.map { line =>
val Array(className, scoreStr) = line.split(",")
(className, scoreStr.toInt)
}
// 第3步:对数据集指定转换操作
val counts = data
.groupBy(0)
.sum(1)
// 第4步:输出结果
counts.print()
}
}
```
其中,`readTextFile` 方法用于从指定路径读取文本数据,`map` 方法用于将每行数据转换为 `(String, Int)` 的元组格式,第一个元素为班级名称,第二个元素为分数。
阅读全文