表流处理读写
Delta Lake通过readStream和writeStream与Spark结构化流深度集成。Delta Lake克服了许多通常与流系统和文件相关的限制,包括:
- (1) 使用多个流(或并发批处理作业)维护exactly-once的处理。即使有其他流或批查询并发地运行在该表上,Delta Lake事务日志也能保证精确一次性处理。
- (2) 当使用文件作为流的源时,有效地发现哪些文件是新的。
对于表上的许多Delta Lake操作,可以在创建新的SparkSession时通过设置配置来支持与Apache Spark DataSourceV2和Catalog API(自3.0以来)的集成。
1.Delta表作为数据源
当将Delta表加载为流源并在流查询中使用它时,查询将处理表中出现的所有数据以及在流启动后到达的任何新数据。示例代码如下:
spark.readStream.format("delta").load("/delta/events") import io.delta.implicits._ spark.readStream.delta("/delta/events") // 简写
1)限制输入的速度
以下选项可用于控制微批:
- (1) maxFilesPerTrigger:每个微批处理中需要考虑多少个新文件。默认值是1000。
-
(2) maxBytesPerTrigger:每个微批处理的数据量。此选项设置一个“软最大值”,意味着 ......
......
抱歉,只有登录会员才可浏览!会员登录