Compartilhar via


latestOffset

Retorna o deslocamento mais recente disponível dado um limite de leitura.

O start deslocamento pode ser usado para determinar a quantidade de novos dados que devem ser lidos dado o limite. Para a primeira microbatch, start é fornecido a partir do valor retornado de initialOffset(). Para microbatches subsequentes, ele continua a partir da última microbatch. A origem poderá retornar o mesmo deslocamento que o deslocamento inicial se não houver dados a serem processados.

ReadLimit pode ser usado pela origem para limitar a quantidade de dados retornados. Implemente getDefaultReadLimit() para fornecer o adequado ReadLimit se a fonte puder limitar os dados com base nas opções de origem.

O mecanismo ainda pode chamar latestOffset() mesmo ReadAllAvailable que a origem produza um limite de leitura diferente de getDefaultReadLimit(). A origem deve sempre respeitar o fornecido ReadLimit pelo mecanismo.

Adicionado no Databricks Runtime 15.2

Sintaxe

latestOffset(start: dict, limit: ReadLimit)

Parâmetros

Parâmetro Tipo Descrição
start dicionário O deslocamento inicial da microbatch da qual continuar a leitura.
limit ReadLimit O limite da quantidade de dados a serem retornados por essa chamada.

Devoluções

dict

Um ditado dict ou recursivo cuja chave e valor são tipos primitivos, que inclui Inteiro, Cadeia de Caracteres e Booleano.

Exemplos

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