DataStream API 一 之 DataStream 编程模型

一.DataSource

1.1 内部数据源

1.1.1 文件 数据源

val textStream =env.readTextFile("/User/local/data_example.log")

1.1.2 Socket 数据源

val sockectDataStream =env.socketTextStream("localhost",9999)

1.1.3 集合 数据源

//fromElements
val dataStream =env.fromElements(Tuple2(1L,3L),Tuple2(1L,5L),Tuple2(1L,7L),Tuple2(1L,4L),Tuple2(1L,2L))
//fromCollection
String[] elements =new String[]{
   "hello","flink"};
DataStream<String> dataStream =env.fromCollection(Arrays.asList(elements));

1.2 外部数据源

1.2.1 数据源连接器

通过StreamExecutionEnvironment.addSource(sourceFunction)来为你的程序添加一个官方提供的source。
官方内置Connectors有如下:
• Kafka
• Elasticsearch
• Hadoop FileSystem
• RabbitMQ
• Apache ActiveMQ
• Redis

1.2.2 自定义数据源连接器

① 通过实现sourceFunction接口来自定义无并行度的source
② 也可以通过实现ParallelSourceFunction 接口 or 继承RichParallelSourceFunction 来自定义有并行度的source

二.DataStream Translate

2.1 Single-DataStrem

2.1.1 Map

[DataStream -> DataStream]

val dataStream =env.fromElements(("a",3),("d",4),("c",2),("c",5),("a",5))
val mapStream:DataStream[(String,Int)]=dataStream.map(t=>(t._1,t._2+1))

2.1.2 FlatMap

[DataStream -> DataStream]

val resultStream[String]=dataStream.flatMap{
   str => str.split(" ")}

2.1.3 Filter

[DataStream -> DataStream]

val filter:DataStream[Int]=dataStream.fliter{
   _ %2 == 0 }
val filter:DataStream[Int]=dataStream.fliter{
   x => x %</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值