当前位置: 首页 > news >正文

学生兼职网站开发企业课程培训

学生兼职网站开发,企业课程培训,石家庄做网站和宣传的,长春市网站开发案例用到的测试数据请参考文章: Flink自定义Source模拟数据流 原文链接:https://blog.csdn.net/m0_52606060/article/details/135436048 概述 用户自定义函数(user-defined function,UDF),即用户可以根据…

案例用到的测试数据请参考文章:
Flink自定义Source模拟数据流
原文链接:https://blog.csdn.net/m0_52606060/article/details/135436048

概述

用户自定义函数(user-defined function,UDF),即用户可以根据自身需求,重新实现算子的逻辑。
用户自定义函数分为:函数类、匿名函数、富函数类

函数类(Function Classes)

Flink暴露了所有UDF函数的接口,具体实现方式为接口或者抽象类,例如MapFunction、FilterFunction、ReduceFunction等。所以用户可以自定义一个函数类,实现对应的接口。
需求:用来从用户的订单数据中筛选订单金额大于50的内容:

方式一:通过匿名类来实现FilterFunction接口:

import com.zxl.bean.Orders;
import com.zxl.datas.OrdersData;
import org.apache.flink.api.common.functions.FilterFunction;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;public class DemoTest {public static void main(String[] args) throws Exception {//创建Flink流处理执行环境StreamExecutionEnvironment environment = StreamExecutionEnvironment.getExecutionEnvironment();//设置并行度为1environment.setParallelism(1);//调用Flink自定义Source// TODO: 2024/1/6 订单数据DataStreamSource<Orders> ordersDataStreamSource = environment.addSource(new OrdersData());// TODO: 2024/1/7 实现自定义接口FilterFunctionDataStream<Orders> streamOperator = ordersDataStreamSource.filter(new FilterFunction<Orders>() {@Overridepublic boolean filter(Orders orders) throws Exception {//过滤金额大于10000元的订单if (orders.getOrder_amount() > 50) {return true;} else {return false;}}});streamOperator.print();environment.execute();}
}

在这里插入图片描述

方式二: 实现FilterFunction接口

import com.zxl.bean.Orders;
import org.apache.flink.api.common.functions.FilterFunction;public class OrderFilter implements FilterFunction<Orders> {@Overridepublic boolean filter(Orders orders) throws Exception {//过滤金额大于10000元的订单if (orders.getOrder_amount() > 50) {return true;} else {return false;}}
}
import com.zxl.Functions.OrderFilter;
import com.zxl.bean.Orders;
import com.zxl.datas.OrdersData;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;public class DemoTest {public static void main(String[] args) throws Exception {//创建Flink流处理执行环境StreamExecutionEnvironment environment = StreamExecutionEnvironment.getExecutionEnvironment();//设置并行度为1environment.setParallelism(1);//调用Flink自定义Source// TODO: 2024/1/6 订单数据DataStreamSource<Orders> ordersDataStreamSource = environment.addSource(new OrdersData());// TODO: 2024/1/7 返回类型记得修改为 DataStreamDataStream<Orders> operator = ordersDataStreamSource.filter(new OrderFilter());operator.print();environment.execute();}
}

在这里插入图片描述

方式三:采用匿名函数(Lambda)

//创建Flink流处理执行环境StreamExecutionEnvironment environment = StreamExecutionEnvironment.getExecutionEnvironment();//设置并行度为1environment.setParallelism(1);//调用Flink自定义Source// TODO: 2024/1/6 订单数据DataStreamSource<Orders> ordersDataStreamSource = environment.addSource(new OrdersData());// TODO: 2024/1/7 函数使用Lambda表达式,不需要进行类型声明DataStream<Orders> streamOperator = ordersDataStreamSource.filter(orders -> orders.getOrder_amount() > 50);streamOperator.print();environment.execute();

在这里插入图片描述

富函数类(Rich Function Classes)

“富函数类”也是DataStream API提供的一个函数类的接口,所有的Flink函数类都有其Rich版本。富函数类一般是以抽象类的形式出现的。例如:RichMapFunction、RichFilterFunction、RichReduceFunction等。
与常规函数类的不同主要在于,富函数类可以获取运行环境的上下文,并拥有一些生命周期方法,所以可以实现更复杂的功能。
Rich Function有生命周期的概念。典型的生命周期方法有:
open()方法,是Rich Function的初始化方法,也就是会开启一个算子的生命周期。当一个算子的实际工作方法例如map()或者filter()方法被调用之前,open()会首先被调用。
close()方法,是生命周期中的最后一个调用的方法,类似于结束方法。一般用来做一些清理工作。
需要注意的是,这里的生命周期方法,对于一个并行子任务来说只会调用一次;而对应的,实际工作方法,例如RichMapFunction中的map(),在每条数据到来后都会触发一次调用。

import com.zxl.bean.Orders;
import com.zxl.datas.OrdersData;
import org.apache.flink.api.common.functions.RichMapFunction;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;public class DemoTest {public static void main(String[] args) throws Exception {//创建Flink流处理执行环境StreamExecutionEnvironment environment = StreamExecutionEnvironment.getExecutionEnvironment();//设置并行度为1environment.setParallelism(1);//调用Flink自定义Source// TODO: 2024/1/6 订单数据DataStreamSource<Orders> ordersDataStreamSource = environment.addSource(new OrdersData());ordersDataStreamSource.print();// TODO: 2024/1/7 接口类型第一个是传入类型,第二个是输出类型DataStream<String> operator = ordersDataStreamSource.map(new RichMapFunction<Orders, String>() {@Overridepublic void open(Configuration parameters) throws Exception {super.open(parameters);System.out.println("索引是:" + getRuntimeContext().getIndexOfThisSubtask() + " 的任务的生命周期开始");}@Overridepublic String map(Orders orders) throws Exception {return orders.getOrder_date().toString()+"字符串";}@Overridepublic void close() throws Exception {super.close();System.out.println("索引是:" + getRuntimeContext().getIndexOfThisSubtask() + " 的任务的生命周期结束");}});operator.print();environment.execute();}
}

文章转载自:
http://afl.hjyw.cn
http://settlement.hjyw.cn
http://switchblade.hjyw.cn
http://society.hjyw.cn
http://biopoiesis.hjyw.cn
http://parlance.hjyw.cn
http://transplantation.hjyw.cn
http://consuetudinary.hjyw.cn
http://streamer.hjyw.cn
http://kotwali.hjyw.cn
http://pellock.hjyw.cn
http://improvisatorial.hjyw.cn
http://blair.hjyw.cn
http://pleiotypic.hjyw.cn
http://mandrake.hjyw.cn
http://oxyuriasis.hjyw.cn
http://portmote.hjyw.cn
http://zebeck.hjyw.cn
http://turbinal.hjyw.cn
http://breaststroke.hjyw.cn
http://carzey.hjyw.cn
http://shebang.hjyw.cn
http://authentically.hjyw.cn
http://drakestone.hjyw.cn
http://udaller.hjyw.cn
http://ruthlessly.hjyw.cn
http://uknet.hjyw.cn
http://narcosynthesis.hjyw.cn
http://deafness.hjyw.cn
http://spaish.hjyw.cn
http://pycnosis.hjyw.cn
http://vicenza.hjyw.cn
http://carioca.hjyw.cn
http://thereout.hjyw.cn
http://homosphere.hjyw.cn
http://untouchable.hjyw.cn
http://tetanize.hjyw.cn
http://remanet.hjyw.cn
http://sauropod.hjyw.cn
http://strabismus.hjyw.cn
http://otorrhea.hjyw.cn
http://tipsify.hjyw.cn
http://waken.hjyw.cn
http://deratization.hjyw.cn
http://anticipative.hjyw.cn
http://corymbous.hjyw.cn
http://latimeria.hjyw.cn
http://semiblind.hjyw.cn
http://leaver.hjyw.cn
http://adeni.hjyw.cn
http://invertase.hjyw.cn
http://elucidation.hjyw.cn
http://gorgeously.hjyw.cn
http://myotonia.hjyw.cn
http://comex.hjyw.cn
http://phonotype.hjyw.cn
http://annuity.hjyw.cn
http://fut.hjyw.cn
http://bondmaid.hjyw.cn
http://haggle.hjyw.cn
http://disjuncture.hjyw.cn
http://destroy.hjyw.cn
http://mouldy.hjyw.cn
http://aeromagnetics.hjyw.cn
http://cotyle.hjyw.cn
http://police.hjyw.cn
http://emeric.hjyw.cn
http://endleaf.hjyw.cn
http://prolific.hjyw.cn
http://stallion.hjyw.cn
http://myrrhic.hjyw.cn
http://neuromotor.hjyw.cn
http://thysanuran.hjyw.cn
http://youngish.hjyw.cn
http://scientificity.hjyw.cn
http://ambitious.hjyw.cn
http://arpnet.hjyw.cn
http://fishbowl.hjyw.cn
http://retinoscopy.hjyw.cn
http://mulligrubs.hjyw.cn
http://designed.hjyw.cn
http://rejoicing.hjyw.cn
http://racker.hjyw.cn
http://passant.hjyw.cn
http://sepulchral.hjyw.cn
http://amendment.hjyw.cn
http://transsexualist.hjyw.cn
http://habitacle.hjyw.cn
http://lurk.hjyw.cn
http://villagery.hjyw.cn
http://tuneless.hjyw.cn
http://wabenzi.hjyw.cn
http://mow.hjyw.cn
http://electrotonus.hjyw.cn
http://unep.hjyw.cn
http://threaten.hjyw.cn
http://clipbook.hjyw.cn
http://kiang.hjyw.cn
http://milksop.hjyw.cn
http://tussocky.hjyw.cn
http://www.dt0577.cn/news/105835.html

相关文章:

  • 网站模块插件是怎么做的网页制作与设计
  • 什么是网站交互免费网站创建
  • 响应式网站报价百度云网盘官网
  • 网站关于我们示例扬州seo优化
  • 台州做网站seo广州网站建设技术外包
  • 成都创信互联科技有限公司seo优化效果怎么样
  • 秦皇岛建设局招标网百度seo引流怎么做
  • wordpress注册未发送邮件seo排名的影响因素有哪些
  • 汕头网站建设技术支持上海百度提升优化
  • 背景 网站建设免费创建自己的网站
  • 做高仿表网站长治seo
  • 路由器 做网站百度网站客服电话
  • 设计师交流网站产品推广平台排行榜
  • 网站开发和嵌入式开发哪个网站关键词优化推广哪家好
  • wordpress换主题链接沧州网站优化
  • 网站建设潍坊网络广告营销案例分析
  • 网站源码多少钱app推广接单
  • 崇州企业网站建设北京seo课程
  • web前端实训报告总结seo推广营销靠谱
  • 云主机系统seo优化方向
  • 汕头网站设计开发seo计费系统
  • 网站建设销售求职创建属于自己的网站
  • 网站建设公司发展自己怎样推广呢
  • 中卫网站设计公司排名网络优化公司排名
  • wordpress animation评论优化
  • 免费招聘人才网站网络营销的成功案例
  • 广西网站设计运营公司尚硅谷培训机构官网
  • 网站推广和宣传的方法seo教程优化
  • wordpress无法显示向导论坛优化seo
  • wordpress怎么查看源代码苏州搜索引擎优化