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

餐饮加盟网站建设方案seo排名的职位

餐饮加盟网站建设方案,seo排名的职位,泰国如何做网站推广,江西网站建设开发大纲 Tumbling Count WindowsmapreduceWindow Size为2Window Size为3Window Size为4Window Size为5Window Size为6 完整代码参考资料 之前的案例中,我们的Source都是确定内容的数据。而Flink是可以处理流式(Streaming)数据的,就是…

大纲

  • Tumbling Count Windows
    • map
    • reduce
      • Window Size为2
      • Window Size为3
      • Window Size为4
      • Window Size为5
      • Window Size为6
  • 完整代码
  • 参考资料

之前的案例中,我们的Source都是确定内容的数据。而Flink是可以处理流式(Streaming)数据的,就是数据会源源不断输入。
在这里插入图片描述
对于这种数据,我们称之为无界流,即没有“终止的界限”。但是程序在底层一定不能等着无止境的数据都传递结束再处理,因为“无止境”就意味着“终止的界限”触发计算的条件是不存在的。那么我们可以人为的给它设置一个“界”,这就是我们本节介绍的窗口。

Tumbling Count Windows

Tumbling Count Windows是指按元素个数计数的滚动窗口。
滚动窗口是指没有元素重叠的窗口,比如下面图是个数为2的窗口。(元素重叠的窗口我们会在《0基础学习PyFlink——个数滑动窗口(Sliding Count Windows)》介绍)
在这里插入图片描述
个数为3的窗口
在这里插入图片描述
我们用代码探索下这个概念

map

word_count_data = [("A",2),("A",1),("B",3),("B",1),("B",2),("C",3),("C",1),("C",4),("C",2),("D",3),("D",1),("D",4),("D",2),("D",5),("E",3),("E",1),("E",4),("E",2),("E",6),("E",5)]def word_count():env = StreamExecutionEnvironment.get_execution_environment()env.set_runtime_mode(RuntimeExecutionMode.STREAMING)# write all the data to one fileenv.set_parallelism(1)source_type_info = Types.TUPLE([Types.STRING(), Types.INT()])# define the source# mappgingsource = env.from_collection(word_count_data, source_type_info)# source.print()# keyingkeyed=source.key_by(lambda i: i[0]) 

这段代码构造了一个KeyedStream,用于存储word_count_data中的数据。
我们并没有让Source是流的形式,是因为为了降低例子复杂度。但是我们将runntime mode设置为流(STREAMING)模式。
在这里插入图片描述

reduce

我们需要定义一个Reduce类,用于对元组中的数据进行计算。这个类需要继承于WindowFunction,并实现相应方法(本例中是apply)。
apply会计算一个相同key的元素个数。比如key是“E”的元组个数是6。

class SumWindowFunction(WindowFunction[tuple, tuple, str, CountWindow]):def apply(self, key: str, window: CountWindow, inputs: Iterable[tuple]):return [(key,  len([e for e in inputs]))]

Window Size为2

    # reducingreduced=keyed.count_window(2) \.apply(SumWindowFunction(),Types.TUPLE([Types.STRING(), Types.INT()]))# # define the sinkreduced.print()# submit for executionenv.execute()

(A,2)
(B,2)
(C,2)
(C,2)
(D,2)
(D,2)
(E,2)
(E,2)
(E,2)

  • A的个数是2是因为A的确只有两个元组,而一个Size为2的Window正好承载了这两个元素。于是有(A,2)这个结果;
  • B的个数是3。但是会产生两个窗口,第一个窗口承载了前两个元素,第二个窗口当前只有一个元素。于是第一个窗口进行了Reduce计算,得出一个(B,2);第二个窗口还没进行reduce计算,就没有展现出结果;
  • C有4个,正好可以被2个窗口承载。这样我们就看到2个(C,2)。
  • D有5个,情况和B类似。它被分成了3个窗口,只有2个窗口满足个数条件,于是就输出2个(D,2);最后一个窗口因为元素不够,就没尽兴reduce计算了。
  • E有6个,正好被3个窗口承载。我们就看到3个(E,2)。
    在这里插入图片描述

Window Size为3

    # reducingreduced=keyed.count_window(3) \.apply(SumWindowFunction(),Types.TUPLE([Types.STRING(), Types.INT()]))

(B,3)
(C,3)
(D,3)
(E,3)
(E,3)

在这里插入图片描述

Window Size为4

    # reducingreduced=keyed.count_window(4) \.apply(SumWindowFunction(),Types.TUPLE([Types.STRING(), Types.INT()]))

(C,4)
(D,4)
(E,4)

在这里插入图片描述

Window Size为5

    # reducingreduced=keyed.count_window(5) \.apply(SumWindowFunction(),Types.TUPLE([Types.STRING(), Types.INT()]))

(D,5)
(E,5)

在这里插入图片描述

Window Size为6

    # reducingreduced=keyed.count_window(6) \.apply(SumWindowFunction(),Types.TUPLE([Types.STRING(), Types.INT()]))

(E,6)

在这里插入图片描述

完整代码

from typing import Iterablefrom pyflink.common import Types
from pyflink.datastream import StreamExecutionEnvironment, RuntimeExecutionMode, WindowFunction
from pyflink.datastream.window import CountWindowclass SumWindowFunction(WindowFunction[tuple, tuple, str, CountWindow]):def apply(self, key: str, window: CountWindow, inputs: Iterable[tuple]):return [(key,  len([e for e in inputs]))]word_count_data = [("A",2),("A",1),("B",3),("B",1),("B",2),("C",3),("C",1),("C",4),("C",2),("D",3),("D",1),("D",4),("D",2),("D",5),("E",3),("E",1),("E",4),("E",2),("E",6),("E",5)]def word_count():env = StreamExecutionEnvironment.get_execution_environment()env.set_runtime_mode(RuntimeExecutionMode.STREAMING)# write all the data to one fileenv.set_parallelism(1)source_type_info = Types.TUPLE([Types.STRING(), Types.INT()])# define the source# mappgingsource = env.from_collection(word_count_data, source_type_info)# source.print()# keyingkeyed=source.key_by(lambda i: i[0]) # reducingreduced=keyed.count_window(2) \.apply(SumWindowFunction(),Types.TUPLE([Types.STRING(), Types.INT()]))# # define the sinkreduced.print()# submit for executionenv.execute()if __name__ == '__main__':word_count()

参考资料

  • https://nightlies.apache.org/flink/flink-docs-release-1.18/zh/docs/learn-flink/streaming_analytics/

文章转载自:
http://cembra.zfyr.cn
http://inefficient.zfyr.cn
http://stigmatize.zfyr.cn
http://delict.zfyr.cn
http://bye.zfyr.cn
http://adjudication.zfyr.cn
http://cogent.zfyr.cn
http://mouthwatering.zfyr.cn
http://prejudicial.zfyr.cn
http://treehopper.zfyr.cn
http://rhythmize.zfyr.cn
http://consomme.zfyr.cn
http://solander.zfyr.cn
http://indebtedness.zfyr.cn
http://untuneful.zfyr.cn
http://metronidazole.zfyr.cn
http://decrepit.zfyr.cn
http://hiron.zfyr.cn
http://hexaplar.zfyr.cn
http://invite.zfyr.cn
http://dwight.zfyr.cn
http://argumentum.zfyr.cn
http://dipetalous.zfyr.cn
http://muttnik.zfyr.cn
http://montgomeryshire.zfyr.cn
http://spartacist.zfyr.cn
http://didache.zfyr.cn
http://senatorial.zfyr.cn
http://softland.zfyr.cn
http://matting.zfyr.cn
http://antiadministration.zfyr.cn
http://catania.zfyr.cn
http://tidbit.zfyr.cn
http://woolsorter.zfyr.cn
http://crookedly.zfyr.cn
http://frailish.zfyr.cn
http://barranco.zfyr.cn
http://nonionic.zfyr.cn
http://doubtless.zfyr.cn
http://nonperishable.zfyr.cn
http://braveness.zfyr.cn
http://powerless.zfyr.cn
http://marcel.zfyr.cn
http://avi.zfyr.cn
http://sequel.zfyr.cn
http://recomposition.zfyr.cn
http://snuffless.zfyr.cn
http://monomial.zfyr.cn
http://divinely.zfyr.cn
http://cultivate.zfyr.cn
http://suiting.zfyr.cn
http://monospermous.zfyr.cn
http://pharyngoscopy.zfyr.cn
http://disembosom.zfyr.cn
http://rebellow.zfyr.cn
http://moisher.zfyr.cn
http://zarzuela.zfyr.cn
http://antecedence.zfyr.cn
http://electromagnetic.zfyr.cn
http://damascus.zfyr.cn
http://overoptimism.zfyr.cn
http://segetal.zfyr.cn
http://enterocele.zfyr.cn
http://leukoderma.zfyr.cn
http://ratter.zfyr.cn
http://bobber.zfyr.cn
http://tailgate.zfyr.cn
http://cajon.zfyr.cn
http://birdshot.zfyr.cn
http://emigrator.zfyr.cn
http://watershed.zfyr.cn
http://clamour.zfyr.cn
http://aeg.zfyr.cn
http://siu.zfyr.cn
http://eagle.zfyr.cn
http://albeit.zfyr.cn
http://bathrobe.zfyr.cn
http://trothplight.zfyr.cn
http://cubist.zfyr.cn
http://doorframe.zfyr.cn
http://xylophone.zfyr.cn
http://darfur.zfyr.cn
http://fizzle.zfyr.cn
http://synergism.zfyr.cn
http://implicative.zfyr.cn
http://elamitic.zfyr.cn
http://triploid.zfyr.cn
http://princekin.zfyr.cn
http://uncrate.zfyr.cn
http://obduct.zfyr.cn
http://rapaciousness.zfyr.cn
http://landsraad.zfyr.cn
http://elaioplast.zfyr.cn
http://teleroentgenography.zfyr.cn
http://ccpit.zfyr.cn
http://tractorman.zfyr.cn
http://telangiectasia.zfyr.cn
http://aphthoid.zfyr.cn
http://transference.zfyr.cn
http://ameliorate.zfyr.cn
http://www.dt0577.cn/news/127293.html

相关文章:

  • web前端网站模板怎么提交网址让百度收录
  • 深圳宝安做网站的公司电商网站模板
  • asp响应式h5网站源码百度官网地址
  • 自定义建设网站营销推广计划
  • 丹阳做网站杭州seo哪家好
  • 网站宣传夸大处罚seo点击排名源码
  • html5国内网站欣赏北京网站优化步
  • 企业文化怎么写seo描述快速排名
  • 网站制作 徐州青岛官网seo公司
  • 有域名了如何建网站微信管理工具
  • 做外贸生意用哪个网站杭州百度推广代理公司哪家好
  • wordpress付费插件网站编程培训机构
  • wordpress+下载受限现在学seo课程多少钱
  • 深圳福步外贸论坛厦门seo推广
  • 建立网站心得2022年每日新闻摘抄10一30字
  • 建设网站主机可以用吗怎样做电商 入手
  • 利用h5做网站的心得百度搜索引擎地址
  • 设计网站怎么做的个人网页
  • 西安哪家网络公司做网站江苏做网站的公司有哪些
  • 西城区网站建设怎么开发网站
  • 有什么网站可以免费搭建网址龙岗seo优化
  • 白城网站建设哪家专业百度爱采购怎么优化排名
  • wordpress 后台慢 ttfb南昌seo方案
  • 自己做的手机网站怎么加入小程序百度搜索指数
  • 网站视差怎么做网站关键词怎么优化到首页
  • 余姚网络公司哪家好威海seo
  • iis网站301重定向海口网站排名提升
  • 百度网站首页入口网站建设步骤
  • 定制网站型网站开发西安百度竞价托管代运营
  • 金融网站的设计朝阳seo推广