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

赤峰微信网站建设糟糕的网站设计

赤峰微信网站建设,糟糕的网站设计,相城seo网站优化软件,哈尔滨做平台网站平台公司&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦&#x1f91…

&&大数据学习&&

🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


按键分区状态(Keyed State)顾名思义,是任务按照键(key)来访问和维护的状态。它的特点非常鲜明,就是以key为作用范围进行隔离。

需要注意,使用Keyed State必须基于KeyedStream。没有进行keyBy分区的DataStream,即使转换算子实现了对应的富函数类,也不能通过运行时上下文访问Keyed State。

1 值状态(ValueState)

顾名思义,状态中只保存一个“值”(value)。ValueState<T>本身是一个接口,源码中定义如下:

public interface ValueState<T> extends State {T value() throws IOException;void update(T value) throws IOException;}

这里的T是泛型,表示状态的数据内容可以是任何具体的数据类型。如果想要保存一个长整型值作为状态,那么类型就是ValueState<Long>。

我们可以在代码中读写值状态,实现对于状态的访问和更新。

  1. T value():获取当前状态的值;
  2. update(T value):对状态进行更新,传入的参数value就是要覆写的状态值。

在具体使用时,为了让运行时上下文清楚到底是哪个状态,我们还需要创建一个“状态描述器”(StateDescriptor)来提供状态的基本信息。例如源码中,ValueState的状态描述器构造方法如下:

public ValueStateDescriptor(String name, Class<T> typeClass) {super(name, typeClass, null);}

这里需要传入状态的名称和类型——这跟我们声明一个变量时做的事情完全一样。

2 列表状态(ListState)

将需要保存的数据,以列表(List)的形式组织起来。在ListState<T>接口中同样有一个类型参数T,表示列表中数据的类型。ListState也提供了一系列的方法来操作状态,使用方式与一般的List非常相似。

  1. Iterable<T> get():获取当前的列表状态,返回的是一个可迭代类型Iterable<T>;
  2. update(List<T> values):传入一个列表values,直接对状态进行覆盖;
  3. add(T value):在状态列表中添加一个元素value;
  4. addAll(List<T> values):向列表中添加多个元素,以列表values形式传入。

类似地,ListState的状态描述器就叫作ListStateDescriptor,用法跟ValueStateDescriptor完全一致。

3 Map状态(MapState)

把一些键值对(key-value)作为状态整体保存起来,可以认为就是一组key-value映射的列表。对应的MapState<UK, UV>接口中,就会有UK、UV两个泛型,分别表示保存的key和value的类型。同样,MapState提供了操作映射状态的方法,与Map的使用非常类似。

  1. UV get(UK key):传入一个key作为参数,查询对应的value值;
  2. put(UK key, UV value):传入一个键值对,更新key对应的value值;
  3. putAll(Map<UK, UV> map):将传入的映射map中所有的键值对,全部添加到映射状态中;
  4. remove(UK key):将指定key对应的键值对删除;
  5. boolean contains(UK key):判断是否存在指定的key,返回一个boolean值。

另外,MapState也提供了获取整个映射相关信息的方法;

  1. Iterable<Map.Entry<UK, UV>> entries():获取映射状态中所有的键值对;
  2. Iterable<UK> keys():获取映射状态中所有的键(key),返回一个可迭代Iterable类型;
  3. Iterable<UV> values():获取映射状态中所有的值(value),返回一个可迭代Iterable类型;
  4. boolean isEmpty():判断映射是否为空,返回一个boolean值。

4 归约状态(ReducingState)

类似于值状态(Value),不过需要对添加进来的所有数据进行归约,将归约聚合之后的值作为状态保存下来。ReducingState<T>这个接口调用的方法类似于ListState,只不过它保存的只是一个聚合值,所以调用.add()方法时,不是在状态列表里添加元素,而是直接把新数据和之前的状态进行归约,并用得到的结果更新状态。

归约逻辑的定义,是在归约状态描述器(ReducingStateDescriptor)中,通过传入一个归约函数(ReduceFunction)来实现的。这里的归约函数,就是我们之前介绍reduce聚合算子时讲到的ReduceFunction,所以状态类型跟输入的数据类型是一样的。

public ReducingStateDescriptor(String name, ReduceFunction<T> reduceFunction, Class<T> typeClass) {...}

这里的描述器有三个参数,其中第二个参数就是定义了归约聚合逻辑的ReduceFunction,另外两个参数则是状态的名称和类型。

http://www.dtcms.com/wzjs/792199.html

相关文章:

  • 北京市门户网站建设苏州建网站的公司
  • 做外贸的都有哪些网站个人网页源码
  • 想给公司做个网站怎么做网站域名和备案公司可以不一样么
  • 哪些网站不能备案百度小程序入口官网
  • 地方电商门户网站如何建设方案青岛网站建设方案托管
  • 兼职网站的建设目标怎么写服务器和网站维护
  • 交易链接大全帮网站做关键词排名优化
  • 手机商城建站系统网站建设建设厅网站打不开
  • 音乐网站开发开发沧州微网网络信息有限公司
  • 做外贸需要网站吗中山建设厅网站首页
  • 有没有做租赁的网站西安专业网站建设报价
  • 网站建设要些什么如何再网站上做免费广告词
  • 哈尔滨道里建设局网站辽宁城乡住房建设厅官网证书查询
  • 网站开发沟通深圳做营销网站公司简介
  • 网站建设得步骤wordpress loper
  • 手机网站设计公司优选亿企邦网站建设架构细节
  • 网站后台管理系统代码外籍人士在中国注册公司
  • 网站栏目框架seo推广怎么样
  • 哪个公司可以做网站每个
  • 建设部网站监理公告wordpress ugc
  • 福田做商城网站建设哪家服务周到新手开网店从哪里找货源
  • canvas设计网站网上商城推广方法
  • 网站项目开发收费标准文山知名网站建设报价
  • 商城网站静态模板下载网址大全123上网导航
  • 网站备案类型有哪些php语言做购物网站
  • 如何做网站客户端网站备案 湖北
  • 手机网站与电脑网站兼容做详情页网站
  • wordpress站内信插件百度新闻发布平台
  • 网站官网认证怎么做的wordpress版权加密
  • 哪些网站有二维码电脑怎么装免费wordpress