【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战007--DateSet实用API详解007
来源:互联网 发布:网络黑侠所有的书 编辑:程序博客网 时间:2024/05/18 03:07
DateSet的API详解七
sortGroup
Adds a secondary sort key to this GroupedDataSet. This will only have an effect if you use oneof the group-at-a-time, i.e. reduceGroup.
执行程序:
//1.创建 DataSet[(Int, String)]val input: DataSet[(Int, String)] = benv.fromElements((20,"zhangsan"),(22,"zhangsan"),(22,"lisi"),(22,"lisi"),(22,"lisi"),(18,"zhangsan"),(18,"zhangsan"))//2.用int分组,用int对分组进行排序val sortdata = input.groupBy(0).sortGroup(0, Order.ASCENDING)//3.对排序好的分组进行reduceGroupval outputdata =sortdata.reduceGroup { //将相同的元素用set去重 (in, out: Collector[(Int, String)]) => in.toSet foreach (out.collect)}//4.显示结果outputdata.collect
执行结果:
res25: Seq[(Int, String)] = Buffer((18,zhangsan), (20,zhangsan), (22,zhangsan), (22,lisi))
web ui中的执行效果:
minBy
def minBy(fields: Int*): DataSet[T]Applies a special case of a reduce transformation minBy on a grouped DataSet. 在分组后的数据中,获取每组最小的元素。
执行程序:
//1.定义case classcase class Student(age: Int, name: String,height:Double)//2.创建DataSet[Student]val input: DataSet[Student] = benv.fromElements(Student(16,"zhangasn",194.5),Student(17,"zhangasn",184.5),Student(18,"zhangasn",174.5),Student(16,"lisi",194.5),Student(17,"lisi",184.5),Student(18,"lisi",174.5))//3.以name进行分组,获取age最小的元素val output0: DataSet[Student] = input.groupBy(_.name).minBy(0)output0.collect//4.以name进行分组,获取height和age最小的元素val output1: DataSet[Student] = input.groupBy(_.name).minBy(2,0)output1.collect
执行结果:
Scala-Flink> output0.collectres73: Seq[Student] = Buffer(Student(16,lisi,194.5), Student(16,zhangasn,194.5))Scala-Flink> output1.collectres74: Seq[Student] = Buffer(Student(18,lisi,174.5), Student(18,zhangasn,174.5))
web ui中的执行效果:
maxBy
def maxBy(fields: Int*): DataSet[T]def max(field: Int): AggregateDataSet[T]Applies a special case of a reduce transformation maxBy on a grouped DataSet 在分组后的数据中,获取每组最大的元素。
执行程序:
//1.定义case classcase class Student(age: Int, name: String,height:Double)//2.创建DataSet[Student]val input: DataSet[Student] = benv.fromElements(Student(16,"zhangasn",194.5),Student(17,"zhangasn",184.5),Student(18,"zhangasn",174.5),Student(16,"lisi",194.5),Student(17,"lisi",184.5),Student(18,"lisi",174.5))//3.以name进行分组,获取age最大的元素val output0: DataSet[Student] = input.groupBy(_.name).maxBy(0)output0.collect//4.以name进行分组,获取height和age最大的元素val output1: DataSet[Student] = input.groupBy(_.name).maxBy(2,0)output1.collect
执行结果:
Scala-Flink> output0.collectres75: Seq[Student] = Buffer(Student(18,lisi,174.5), Student(18,zhangasn,174.5))Scala-Flink> output1.collectres76: Seq[Student] = Buffer(Student(16,lisi,194.5), Student(16,zhangasn,194.5))
web ui中的执行效果:
阅读全文
0 0
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战007--DateSet实用API详解007
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战001--DateSet实用API详解001
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战002--DateSet实用API详解002
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战003--DateSet实用API详解003
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战004--DateSet实用API详解004
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战005--DateSet实用API详解005
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战006--DateSet实用API详解006
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战008--DateSet实用API详解008
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战009--DateSet实用API详解009
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战010--DateSet实用API详解010
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战011--DateSet实用API详解011
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战012--DateSet实用API详解012
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战013--DateSet实用API详解013
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战014--DateSet实用API详解014
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战015--DateSet实用API详解015
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战016--DateSet实用API详解016
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战017--DateSet实用API详解017
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战018--DateSet实用API详解018
- C++接口函数(c中调用c++函数extern)
- HDFS小文件问题解决方案
- linux 单机安装 Elasticsearch6.0.0 详细步骤以及问题解决方案
- v2ex小程序
- 详解log4j2 基础
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战007--DateSet实用API详解007
- 【MongoDB】sort stage buffered data usage of 33554446 bytes exceeds internal limit of 33554432 bytes
- Java字體相关知识点(等宽字体)
- 自我救赎之路—(springboot 配置多种数据源)
- 接口到底有什么用
- HDFS数据恢复模式
- 第一个项目 11.17杂记
- 工厂模式和抽象工厂模式
- 【商业模式】如何让你的 AI 创业公司有竞争力?这有一个“成功方程式”(第二部分)