latestOffset

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

O deslocamento start pode ser usado para determinar quantos dados novos devem ser lidos, dado o limite. Para o primeiro microlote, start é fornecido a partir do valor de retorno de initialOffset(). Para microlotes subsequentes, continua a partir do microlote anterior. A fonte pode devolver o mesmo deslocamento que o deslocamento inicial se não houver dados para processar.

ReadLimit pode ser usado pela fonte para limitar a quantidade de dados devolvidos. Implemente getDefaultReadLimit() para fornecer a informação adequada ReadLimit se a fonte puder limitar os dados com base nas opções da fonte.

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

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 do microlote para continuar a ler.
limit ReadLimit O limite para a quantidade de dados a ser devolvida por esta chamada.

Devoluções

dict

Um dict ou dict recursivo cuja chave e valor são tipos primitivos, incluindo Inteiro, String 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)}