Flink DataSet的常用API


Flink DataSet 常用API主要分为3部分:

  • DataSource:是程序的数据源的输入,可以自定义数据源;
  • transformation:具体的操作,对一个或多个输入进行计算处理;
  • Sink:程序的输出,将Transformation处理之后的数据输出到指定的存储介质中;

一、DataSource

1、来源

DataSource方法描述
基于文件readTextFile读取文本文件,主要是HDFS文件
基于集合fromCollection主要是为了方便测试

二、Transformation

Flink针对DataSet提供了大量的算子:

  1. Map ,输入一个元素,然后返回一个元素,中间可以进行清洗转换等操作;
  2. FlatMap ,输入一个元素,可以返回零个、一个或多个元素;
  3. MapPartition ,类似Map,一次处理一个分区的数据。;
  4. Filter ,过滤函数,对传入的数据进行判断,符合条件的数据保留;
  5. keyBy ,根据指定的Key进行分组,Key相同的数据会进入同一个分区;
  6. Reduce ,对数据进行聚合操作,结合当前元素和上一次Reduce返回的值进行聚合操作,然后返回一个新值;
  7. Aggregations ,聚合函数,例如:sum(),min(),max()等;
  8. Distinct,返回一个数据集中去重之后的元素;
  9. Join ,内连接;
  10. OuterJoin ,外连接;
  11. Cross,获取两个数据集的笛卡尔积
  12. Union ,返回两个数据集的总和,数据类型需要一致;
  13. First-n ,获取集合中前N个元素;
  14. Sort Partition ,在本地数据集的所有分区进行排序,通过sortPartition()的链接调用来完成多个字段的排序;

Flink针对DataStream提供了一些数据分区规则:

  1. Hash-Partition ,根据指定的Key的散列值对数据集进行分区;
  2. Range-Partition ,根据指定的Key对数据集进行范围分区;
  3. Rebalancing ,对数据集进行再平衡、重分区和消除数据倾斜。
  4. Custom partitioning,自定义分区。实现Partitioner接口。
    partitionCustom(partitioner,“someKey”);
    或者
    partitionCustom(partitioner,0);

三、Sink

Flink针对DataStream提供大量的已经实现的数据目的地Sink:

  1. writeAsText() ,将元素以字符串形式逐行写入,这些字符串通过调用每个元素的toString方法来获取;
  2. writeAsCsv ,将元组以逗号分割写入文件中,行及字段之间的分割是可配置的,每个字段的值来自对象的toString()方法;
  3. print(),打印每个元素的toString()方法的值到标准输出或者标准错误输出流中。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涛2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值