Flink笔记(二) DataStream Operator(数据流操作)
DataStream Source
基于文件
- readTextFile(path)
- 读取 text 文件的数据
- readFile(fileInputFormat, path)
- 通过自定义的读取方式, 来读取文件的数据
- readTextFile(path)
基于socket
- socketTextStream
- 从 socket 端口中读取数据
- socketTextStream
基于集合
- fromCollection(Collection)
- 从 collection集合中读取数据, 从而形成一个数据流, 集合中的元素类型需要一致
- fromElements(T ...)
- 从数组里读取数据, 从而形成一个数据流, 集合中的元素类型需要一致。
- fromCollection(Collection)
自定义 source
- addSource - 自定义一个数据源,比如FlinkKafkaConsumer,从kafka里读数据。
DataStream Transformations
转换算子 描述 Map DataStream --> DataStream 采用一个元素并生成一个元素 FlatMap DataStream --> DataStream 一个元素并生成零个, 一个或多个元素 Filter DataStream --> DataStream 过滤函数返回 false 的数据, true 的数据保留 KeyBy DataStream --> KeyedStream 指定 key将 K, V 格式的数据流进行逻辑分区, 将相同 key 的记录分在同一分区中。 Aggregations KeyedStream --> DataStream 对k,v格式的数据流进行聚合操作。 Reduce KeyedStream --> DataStream 对k,v的数据进行“减少操作”,这个操作逻辑自己写,加减乘除都行 DataStream Sink
- writeAsText()
- 将计算结果输出成text文件
- writeAsCsv()
- 将计算结果输出成csv文件
- print()
- 将计算结果打印到控制台
- writeUsingOutputFormat()
- 自定义输出方式
- writeToSocket
- 将计算结果输出到某台机器的端口上。
- writeAsText()
DataType
Flink对DataSet或DataStream中可以包含的元素类型设置了一些限制。
它支持多种不同类别的数据类型:
- Java Tuples and Scala Case Classes
- JAVA POJOs
- Primitive Types
Java Tuples and Scala Case Classes
POJO
- 如果满足以下要求,则Flink将Java和Scala类视为特殊的POJO数据类型:
- 必须是public class
- 必须有一个无参构造器(默认构造函数)
- 所有字段都是public的,或者必须通过getter和setter函数访问。
- 对于一个名为foo的字段getter和setter方法的字段必须命名getFoo()和setFoo()。
- 成员属性的类型必须是Flink支持的数据类型。目前,Flink使用Avro序列化任意对象(例如Date)。
- 如果满足以下要求,则Flink将Java和Scala类视为特殊的POJO数据类型:
Primitive Types(原始类型)
- Flink支持所有Java和Scala的原始类型,如Integer,String和Double。
Flink笔记(二) DataStream Operator(数据流操作)的更多相关文章
- jQuery学习笔记(二)jQuery中DOM操作
目录 DOM操作分类 jQuery中的各种DOM操作 查找节点 创建节点 删除节点 复制节点 替换节点 包裹节点 属性操作 样式操作 对HTML.文本和值的操作 遍历节点 CSS-DOM操作 小结 本 ...
- python笔记二(mysql数据库操作)
python2.x使用MySQLdb python3.x使用pymysql代替MySQLdb 不过我使用的是python3.5,MySQLdb还是可以在python3.5使用的. #!/usr/bin ...
- python笔记二:常用数据类型操作
1.切片:常用于取list或tuple的部分元素的操作 1)l=[1,2,3,4,5,6] l[:3]表示取前3个值,l[1:5]表示1到5个值, L[-3:]从列表最后往前数即最后3个数.... 2 ...
- python3笔记二十一:时间操作datetime和calendar
一:学习内容 datetime calendar 二:datetime 1.模块说明:可以理解为datetime基于time进行了封装,提供了各种使用的函数,datetime模块的接口更直接,更容易调 ...
- python3笔记二十:时间操作time
一:学习内容 time时间戳 time元组 time字符串 time时间转换图解 二:time 需要引入:import time 1.概念 UTC(世界协调时间):格林尼治天文时间,世界标准时间,在中 ...
- jquery学习笔记(二):DOM元素操作
内容来自[汇智网]jquery学习课程 2.1 元素属性操作 1.获取元素的属性 语法:attr(name) 参数name表示属性的名称 2.设置元素的属性 单个属性设置语法:attr(key,val ...
- python学习笔记(二)---for循环与操作列表
内容概要 for循环 range(start,end,step)函数 生成随机数列表 list()函数 将range()的结果整合到某个列表 列表的操作 切片(start: end :step) 元组 ...
- Flink流处理(三)- 数据流操作
3. 数据流操作 流处理引擎一般会提供一组内置的操作,用于对流做消费.转换,以及输出.接下来我们介绍一下最常见的流操作. 操作分为无状态的(stateless)与有状态的(stateful).无状态的 ...
- git的学习笔记(二):git远程操作
1.创建ssh key ssh-keygen -t rsa -C "your_email@example.com" 执行命令后会在用户的家目录生成.ssh的隐藏文件夹,文件夹里有公 ...
随机推荐
- BUU re xor
从13行和18行的0x21(c规定十六进制必须用0x**表示)可以知道这个字符串就是33个字符 shift+e来提取出数组中的字符: 设这个数组是global数组 global[] = { 102, ...
- CSS3实现放大缩小动画
HTML <div> <div style="height: 35px;width:300px;background:orangered;border-radius: 4p ...
- 【MAVEN】maven项目下载更新pom jar包速度慢 解决方案
1·下载安装 最新版本的maven https://maven.apache.org/download.cgi 2·速度慢的主要原因是因为默认setting.xml里配置的国外的 maven 数据源 ...
- Day10 - 灾难 HYSBZ - 2815
Description 阿米巴是小强的好朋友. 阿米巴和小强在草原上捉蚂蚱.小强突然想,果蚂蚱被他们捉灭绝了,那么吃蚂蚱的小鸟就会饿死,而捕食小鸟的猛禽也会跟着灭绝,从而引发一系列的生态灾难. 学过生 ...
- 「HNOI/AHOI2018」道路
传送门 Luogu 解题思路 考虑树形 \(\text{DP}\) 设状态 \(dp[u][i][j]\) 表示从首都走到点 \(u\) ,经过 \(i\) 条公路,\(j\) 条铁路的最小不方便值. ...
- lnmp1.5安装swoole
php7.2安装swoole-4.0.1.tgz php5.6安装swoole-1.10.4.tgz wget http://pecl.php.net/get/swoole-4.0.1.tgz ...
- 修改Xshell字体大小和颜色
博客专区 > XManager的博客 > 博客详情 修改Xshell字体大小和颜色 XManager 发表于7个月前 分享到: 一键分享 QQ空间 微信 腾讯微博 新浪微博 QQ好友 有道 ...
- LNMP 常见问题(FAQ)
常见问题(FAQ)常见问题关键词快速索引 我们为什么需要采用LNMP架构?原因不在重复,请看:关于 LNMP一键安装包支持哪些Linux发行版?目前支持CentOS(RadHat).Debian.Ub ...
- MyBatis学习之简单增删改查操作、MyBatis存储过程、MyBatis分页、MyBatis一对一、MyBatis一对多
一.用到的实体类如下: Student.java package com.company.entity; import java.io.Serializable; import java.util.D ...
- DotNet中的继承,剖析面向对象中继承的意义
继承是面向对象程序设计不可缺少的机制,有了继承这个东西,可以提高代码的重用,提高代码的效率,减轻代码员的负担. 面向对象三大特性:封装.继承.多态是相辅相成的.封装为了继承,限制了父类的哪些成员被子类 ...