último deslocamento
Retorna o deslocamento mais recente disponível, dado um limite de leitura.
O deslocamento start pode ser usado para determinar a quantidade de novos dados que devem ser lidos, dado o limite. Para o primeiro microlote, start é fornecido a partir do valor de retorno de initialOffset(). Para os microlotes subsequentes, o processo continua a partir do último microlote. A fonte pode retornar 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 retornados. Implemente getDefaultReadLimit() para fornecer o ReadLimit adequado se a fonte puder limitar os dados com base nas opções da fonte.
O mecanismo ainda pode chamar latestOffset() com ReadAllAvailable mesmo que a fonte produza um limite de leitura diferente de getDefaultReadLimit(). A fonte deve sempre respeitar o ReadLimit fornecido pelo motor.
Adicionado no Databricks Runtime 15.2
Sintaxe
latestOffset(start: dict, limit: ReadLimit)
Parâmetros
Parâmetro | Tipo | Descrição |
|---|---|---|
| dicionário | O deslocamento inicial do microbatch para continuar a leitura. |
| Limite de leitura | O limite da quantidade de dados a serem retornados por esta chamada. |
Devoluções
dict
Um dicionário ou dicionário recursivo cuja key e valor são tipos primitivos, incluindo Integer, strings e Boolean.
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)}