Condividi tramite


latestOffset

Restituisce l'offset più recente disponibile in base a un limite di lettura.

L'offset start può essere usato per determinare la quantità di nuovi dati da leggere in base al limite. Per il primo microbatch, start viene fornito dal valore restituito di initialOffset(). Per i microbatches successivi, continua dall'ultimo microbatch. L'origine può restituire lo stesso offset dell'offset iniziale se non sono presenti dati da elaborare.

ReadLimit può essere usato dall'origine per limitare la quantità di dati restituiti. Implementare getDefaultReadLimit() per fornire il corretto ReadLimit se l'origine può limitare i dati in base alle opzioni di origine.

Il motore può comunque chiamare latestOffset() con ReadAllAvailable anche se l'origine produce un limite di lettura diverso da getDefaultReadLimit(). L'origine deve sempre rispettare l'oggetto fornito ReadLimit dal motore.

Aggiunta in Databricks Runtime 15.2

Sintassi

latestOffset(start: dict, limit: ReadLimit)

Parametri

Parametro Tipo Descrizione
start dizionario Offset iniziale del microbatch da cui continuare la lettura.
limit ReadLimit Limite per la quantità di dati da restituire da questa chiamata.

Restituzioni

dict

Dict o dict ricorsivo il cui valore e la chiave sono tipi primitivi, che includono Integer, String e Boolean.

Examples

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