latestOffset

Returnerar den senaste tillgängliga förskjutningen med en läsgräns.

Förskjutningen start kan användas för att avgöra hur mycket nya data som ska läsas med tanke på gränsen. För den allra första mikrobatchen start tillhandahålls från returvärdet för initialOffset(). För efterföljande mikrobatcher fortsätter den från den sista mikrobatchen. Källan kan returnera samma förskjutning som startförskjutningen om det inte finns några data att bearbeta.

ReadLimit kan användas av källan för att begränsa mängden data som returneras. Implementera getDefaultReadLimit() för att ange rätt ReadLimit om källan kan begränsa data baserat på källalternativ.

Motorn kan fortfarande anropa latestOffset() med ReadAllAvailable även om källan genererar en annan läsgräns än getDefaultReadLimit(). Källan måste alltid respektera den angivna ReadLimit som tillhandahålls av motorn.

Har lagts till i Databricks Runtime 15.2

Syntax

latestOffset(start: dict, limit: ReadLimit)

Parameters

Parameter Type Beskrivning
start Dict Startförskjutningen för mikrobatchen att fortsätta läsa från.
limit ReadLimit Gränsen för hur mycket data som ska returneras av det här anropet.

Retur

dict

En diktering eller rekursiv diktering vars nyckel och värde är primitiva typer, som innehåller Heltal, Sträng och Booleskt värde.

Exempel

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)}