Spark系列:结构化数据流
自Spark 2.0之后,DataFrame和DataSet可以用于表示静态有界数据和无界流数据,并使用SparkSession从流源创建DataFrame/DataSet。使用spark.readStream()可以创建流。

我们设计了数据源、接收器和执行引擎,以实现端到端一次传输。数据源具有偏移量,执行引擎使用检查点和预写日志来记录每次触发后正在处理数据的偏移范围。接收器使用幂等接收,确保结构化数据流实现了端到端一次性传输。
数据源
内置数据源包括:
- Filesource:读取目录中的文件,按文件修改时间进行处理。支持text、csv、json、orc、parquet格式。
- Kafkasource:兼容kafkabroker0.10.0或更高版本。
- Socketsource(用于测试):从socket连接中读取数据,监听socket套接字。
- Ratesource(用于测试):以每秒指定的行数生成数据。
案例
可以通过创建socket流和文件流来测试数据集是否为流数据。可以使用DF.isStreaming来判断数据集是否为流数据。Spark 3.1开始,也支持根据DataStreamReader.table()来创建结构化数据流。当读取目录时如果存在key=value形式的子目录时,将自动递归到这些目录中并发生分区。
以上内容来源于IT那活儿(上海新炬王翦团队)的潘宗昊。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6259.html
