foreach_batch_sink

Le @dp.foreach_batch_sink() décorateur définit un récepteur ForEachBatch, qui traite un flux en tant que série de micro-lots que vous gérez dans Python avec une logique personnalisée. Vous référencez le récepteur en tant que targetflux d’ajout pour écrire les données transformées. Pour obtenir des conseils conceptuels, des considérations et des exemples, consultez Utiliser ForEachBatch pour écrire dans des récepteurs de données arbitraires dans des pipelines.

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

Paramètre Description
name facultatif. Nom unique permettant d’identifier le récepteur dans le pipeline. La valeur par défaut est le nom de la fonction UDF, lorsqu’elle n’est pas incluse.
batch_handler Il s’agit de la fonction définie par l’utilisateur (UDF) appelée pour chaque micro-lot.
Df DataFrame Spark contenant des données pour le micro-batch actuel.
batch_id Identifiant entier du micro-lot. Spark incrémente cet ID pour chaque intervalle de déclencheur.
Un batch_id de 0 représente le début d’un flux ou le commencement d’une actualisation complète. Le foreach_batch_sink code doit gérer correctement une actualisation complète pour les sources de données en aval. Pour plus d’informations, consultez Actualisation complète.