latestOffset

Devuelve el desplazamiento más reciente disponible según un límite de lectura.

El start desplazamiento se puede usar para determinar la cantidad de datos nuevos que se deben leer según el límite. Para el primer microbatch, start se proporciona a partir del valor devuelto de initialOffset(). Para las microbachas posteriores, continúa desde el último microbatch. El origen puede devolver el mismo desplazamiento que el desplazamiento inicial si no hay datos que procesar.

ReadLimit puede usar el origen para limitar la cantidad de datos devueltos. Implemente getDefaultReadLimit() para proporcionar el adecuado ReadLimit si el origen puede limitar los datos en función de las opciones de origen.

El motor todavía puede llamar latestOffset() con ReadAllAvailable aunque el origen genere un límite de lectura diferente de getDefaultReadLimit(). El origen siempre debe respetar el proporcionado ReadLimit por el motor.

Agregado en Databricks Runtime 15.2

Sintaxis

latestOffset(start: dict, limit: ReadLimit)

Parámetros

Parámetro Tipo Descripción
start diccionario Desplazamiento inicial del microbatch desde el que continuar leyendo.
limit ReadLimit Límite de la cantidad de datos que va a devolver esta llamada.

Devoluciones

dict

Un dict o dict recursive cuya clave y valor son tipos primitivos, que incluye Integer, String y Boolean.

Ejemplos

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