foreach_batch_sink

De @dp.foreach_batch_sink() decorator definieert een ForEachBatch-sink, die een stroom verwerkt als een reeks microbatches die u in Python met aangepaste logica verwerkt. U verwijst naar de sink als een targettoevoegstroom om de getransformeerde gegevens te schrijven. Zie ForEachBatch gebruiken om te schrijven naar willekeurige gegevenssinks in pijplijnen voor conceptuele richtlijnen, overwegingen en voorbeelden.

Syntax

from pyspark import pipelines as dp

@dp.foreach_batch_sink(name="<name>")
def batch_handler(df, batch_id):
    """
    Required:
      - `df`: a Spark DataFrame representing the rows of this micro-batch.
      - `batch_id`: unique integer ID for each micro-batch in the query.
    """
    # Your custom write or transformation logic here
    # Example:
    # df.write.format("some-target-system").save("...")
    #
    # To access the sparkSession inside the batch handler, use df.sparkSession.

Parameters

Parameter Description
name Optional. Een unieke naam om de sink in de pijplijn te identificeren. Standaard ingesteld op de naam van de UDF, indien niet opgenomen.
batch_handler Dit is de door de gebruiker gedefinieerde functie (UDF) die wordt aangeroepen voor elke microbatch.
Df Spark DataFrame met gegevens voor de huidige microbatch.
batch_id De integer-ID van de micro-batch. Spark incrementeert deze id voor elk triggerinterval.
Een batch_id van 0 staat voor het begin van een stream of het begin van een volledige verversing. De foreach_batch_sink code moet een volledige vernieuwing voor downstreamgegevensbronnen correct verwerken. Zie Volledig vernieuwen voor meer informatie.