latestOffset

Renvoie le décalage le plus récent disponible en fonction d’une limite de lecture.

Le start décalage peut être utilisé pour déterminer la quantité de nouvelles données à lire en fonction de la limite. Pour la première microbatch, start est fourni à partir de la valeur de retour de initialOffset(). Pour les microbatches suivantes, il continue à partir du dernier microbatch. La source peut retourner le même décalage que le décalage de début s’il n’y a pas de données à traiter.

ReadLimit peut être utilisé par la source pour limiter la quantité de données retournées. Implémentez getDefaultReadLimit() pour fournir la valeur appropriée ReadLimit si la source peut limiter les données en fonction des options de source.

Le moteur peut toujours appeler latestOffset() avec ReadAllAvailable même si la source produit une limite de lecture différente de getDefaultReadLimit(). La source doit toujours respecter la donnée ReadLimit fournie par le moteur.

Ajouté dans Databricks Runtime 15.2

Syntaxe

latestOffset(start: dict, limit: ReadLimit)

Paramètres

Paramètre Type Description
start dictionnaire Décalage de début du microbatch à partir duquel continuer la lecture.
limit ReadLimit Limite de la quantité de données à retourner par cet appel.

Retours

dict

dictée ou récursive dont la clé et la valeur sont des types primitifs, qui inclut Integer, String et Boolean.

Exemples

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