latestOffset

返回给定读取限制的最新偏移量。

偏移 start 量可用于确定应根据限制读取多少新数据。 对于第一个微batch, start 从返回值的返回值 initialOffset()提供。 对于后续微球,它从最后一个微袋继续。 如果没有要处理的数据,源可以返回与起始偏移量相同的偏移量。

ReadLimit 源可以使用它来限制返回的数据量。 如果源可以基于源选项限制数据,则实现 getDefaultReadLimit() 提供适当的 ReadLimit 方法。

即使源生成不同的读取限制,latestOffset()引擎仍ReadAllAvailablegetDefaultReadLimit()可以使用该调用。 源必须始终尊重引擎提供的给定 ReadLimit 内容。

在 Databricks Runtime 15.2 中添加

Syntax

latestOffset(start: dict, limit: ReadLimit)

参数

参数 类型 说明
start dict 要继续从中读取的微分包的起始偏移量。
limit ReadLimit 此调用要返回的数据量的限制。

退货

dict

一个听写或递归听写,其键和值是基元类型,包括整数、字符串和布尔值。

示例

from pyspark.sql.streaming.datasource import ReadAllAvailable, ReadMaxRows

def latestOffset(self, start, limit):
    # Assume the source has 10 new records between start and latest offset
    if isinstance(limit, ReadAllAvailable):
        return {"index": start["index"] + 10}
    else:  # e.g., limit is ReadMaxRows(5)
        return {"index": start["index"] + min(10, limit.maxRows)}