您的位置:首页 > 财经 > 产业 > 外贸独立站建站平台_遵义网站建设哪家强_搜索引擎的优化和推广_如何制定会员营销方案

外贸独立站建站平台_遵义网站建设哪家强_搜索引擎的优化和推广_如何制定会员营销方案

2024/11/17 20:20:31 来源:https://blog.csdn.net/tsstep/article/details/142899866  浏览:    关键词:外贸独立站建站平台_遵义网站建设哪家强_搜索引擎的优化和推广_如何制定会员营销方案
外贸独立站建站平台_遵义网站建设哪家强_搜索引擎的优化和推广_如何制定会员营销方案

文章目录

  • 前言
  • 一、Partition分区(物理分区)
    • 1.1 随机分区 shuffle
    • 1.2 轮询分区 rebalance
    • 1.3 重缩放分区 rescale
    • 1.4 广播分区 broadcast
    • 1.5 全局分区 global
    • 1.6 keyby
    • 1.7 自定义分区 Custom
  • 二、transform
    • 2.1 flatMap
    • 2.2 filter
    • 2.3 RichFunction
    • 2.4 map
  • 三、 Aggregate聚合
    • 3.1 keyBy()
    • 3.2 max()和 maxBy()
    • 3.3 Reduce
  • 总结


前言

前无言


一、Partition分区(物理分区)

1.1 随机分区 shuffle

随机分区(在 1 号线程和 2 号线程所在分区 随机输出),逻辑实现方法是:random.nextInt(下游算子并行度)

1.2 轮询分区 rebalance

如果是数据源倾斜的场景,source 后,调用 rebalance就可以解决数据源的倾斜问题

1.3 重缩放分区 rescale

rescale缩放:实现轮询,局部组队,比reblance更高效

1.4 广播分区 broadcast

发给下游所有的子任务,有几个并行子任务就发几个

1.5 全局分区 global

全部发往第一个子任务

1.6 keyby

按照指定 key 去发送,相同 key 发往同一个子任务。
one-to-one:Forward 分区器

1.7 自定义分区 Custom

二、transform

2.1 flatMap

flatMap()的输出可以是零个、一个或多个元素。通过 Collector来输出, 调用几次就输出几条。该方法的返参是 void。当输出元素是一个列表时,flatMap()会将列表展平。

2.2 filter

过滤,true 保留

2.3 RichFunction

RichMapFunction类是一种RichFunction类,它除了提供MapFunction类的基础功能,还提供了一系列其他方法,包括open()、close()、getRuntimeContext()和setRuntimeContext()等方法,重写这些方法可以创建状态数据、对数据进行广播、获取累加器和计数器等。

  1. Rich 类函数多了声明周期管理方法
  • open():每个子任务,在启动前,调用一次
  • close():每个子任务,在结束时,调用一次
    • 如果是 flink 程序异常挂掉,不会调用 close
    • 如果是正常调用 cancel 命令,可以 close
  1. 多一个运行时上下文
    可以获取一些运行时的环境行信息,比如子任务编号、名称,等其他。

2.4 map

一进一出。
map()对一个DataStream中的每个元素使用用户自定义的Mapper函数进行处理,每个输入元素对应一个输出元素,最终整个数据流被转换成一个新的DataStream。

三、 Aggregate聚合

3.1 keyBy()

  • 返回的是 一个 KeyedStream,键控流
  • keyby不是 转换算子, 只是对数据进行重分区, 不能设置并行度
  • 分组 与 分区 的关系:
    • keyby是对数据分组,保证相同key的数据在同一个分区(子任务)
    • 分区: 一个子任务可以理解为一个分区,一个分区(子任务)中可以存在多个分组(key)

3.2 max()和 maxBy()

max和maxby的区别: (min 同 max)

  • max:只会取比较字段的最大值,非比较字段保留第一次的值
  • maxby:取比较字段的最大值,同时非比较字段,取最大值这条数据的值
// 原始数据
new WaterSensor("s1", 1L, 1),
new WaterSensor("s1", 11L, 11),
new WaterSensor("s2", 2L, 2),
new WaterSensor("s3", 3L, 3)// max // 比较字段是 vc、按照 id 分组
WaterSensor(id=s1, ts=1, vc=1)
WaterSensor(id=s1, ts=1, vc=11) // ts  总会保留第一次的值 1
WaterSensor(id=s2, ts=2, vc=2)
WaterSensor(id=s3, ts=3, vc=3)// maxby // 比较字段是 vc、按照 id 分组
WaterSensor(id=s1, ts=1, vc=1)
WaterSensor(id=s1, ts=11, vc=11) // ts 取了 vc 对应这行的最大值 11
WaterSensor(id=s2, ts=2, vc=2)
WaterSensor(id=s3, ts=3, vc=3)

3.3 Reduce

Reduce()的原理:reduce()在KeyedStream上生效,它接受两个输入,生成一个输出,即两两合一地进行汇总操作,生成一个同类型的新元素。


总结

暂时没了。。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com