読み取り制限がある場合に使用できる最新のオフセットを返します。
start オフセットを使用して、制限を受けて読み取る必要がある新しいデータの量を決定できます。 最初のマイクロバッチの場合、 start は initialOffset()の戻り値から提供されます。 後続のマイクロバッチの場合は、最後のマイクロバッチから続行されます。 処理するデータがない場合、ソースは開始オフセットと同じオフセットを返すことができます。
ReadLimit を使用して、返されるデータの量を制限できます。 ソースがソース オプションに基づいてデータを制限できる場合に適切なgetDefaultReadLimit()を提供するReadLimitを実装します。
ソースがlatestOffset()とは異なる読み取り制限を生成した場合でも、エンジンはReadAllAvailableを使用してgetDefaultReadLimit()を呼び出すことができます。 ソースは、常にエンジンによって提供される指定された ReadLimit を尊重する必要があります。
Databricks Runtime 15.2 で追加されました
構文
latestOffset(start: dict, limit: ReadLimit)
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
start |
辞書 | 読み続けるマイクロバッチの開始オフセット。 |
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)}