Flink实战(四) - DataSet API编程

1 你将学到

◆ DataSet API开发概述
◆ 计数器
◆ DataSource
◆ 分布式缓存
◆ Transformation
◆ Sink

2 Data Set API 简介

Flink中的DataSet程序是实现数据集转换(例如,过滤,映射,连接,分组)的常规程序.
最初从某些Source源创建数据集(例如,通过读取文件或从本地集合创建)
结果通过sink返回,接收器可以例如将数据写入(分布式)文件或标准输出(例如命令行终端)
Flink程序可以在各种环境中运行,单机运行或嵌入其他程序中
执行可以在本地JVM中执行,也可以在集群机器上执行.

为了创建自己的Flink DataSet程序,鼓励从Flink程序的解剖开始,逐步添加自己的转换!

3 测试环境


4 Data Sources简介

数据源创建初始数据集,例如来自文件或Java集合。创建数据集的一般机制是在InputFormat后面抽象的

Flink附带了几种内置格式,可以从通用文件格式创建数据集。其中许多都在ExecutionEnvironment上有快捷方法。

4.1 基于文件

  • readTextFile(path)/ TextInputFormat
    按行读取文件并将它们作为字符串返回
  • readTextFileWithValue(path)/ TextValueInputFormat
    按行读取文件并将它们作为StringValues返回。 StringValues是可变字符串
  • readCsvFile(path)/ CsvInputFormat
    解析逗号(或其他字符)分隔字段的文件。返回元组,案例类对象或POJO的DataSet。支持基本的java类型及其Value对应的字段类型
  • readFileOfPrimitives(path,delimiter)/ PrimitiveInputFormat
    使用给定的分隔符解析新行(或其他char序列)分隔的原始数据类型(如String或Integer)的文件
  • readSequenceFile(Key,Value,path)/ SequenceFileInputFormat
    创建JobConf并从类型为SequenceFileInputFormat,Key class和Value类的指定路径中读取文件,并将它们作为Tuple2 <Key,Value>返回。

4.2 基于集合

  • fromCollection(Iterable) - 从Iterable创建数据集。 Iterable返回的所有元素必须属于同一类型
  • fromCollection(Iterator) - 从迭代器创建数据集。该类指定迭代器返回的元素的数据类型
  • fromElements(elements:_ *) - 根据给定的对象序列创建数据集。所有对象必须属于同一类型
  • fromParallelCollection(SplittableIterator) - 并行地从迭代器创建数据集。该类指定迭代器返回的元素的数据类型
  • generateSequence(from,to) - 并行生成给定时间间隔内的数字序列。

4.3 通用

  • readFile(inputFormat,path)/ FileInputFormat
    接受文件输入格式
  • createInput(inputFormat)/ InputFormat
    接受通用输入格式

    5 从集合创建DataSet

    5.1 Scala实现

5.2 Java实现

6 从文件/文件夹创建DataSet

6.1 Scala实现

文件


文件夹

Java实现


7 从csv文件创建Dataset

7.1 Scala实现

系列文章

Flink实战(三) - 编程模型及核心概念

#笔试题目##面经##春招##实习#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务