foreach_batch_sink

Dekoratör@dp.foreach_batch_sink(), bir akışı özel mantıkla Python işlediğiniz bir dizi mikro toplu iş olarak işleyen bir ForEachBatch havuzu tanımlar. Dönüştürülen verileri yazmak için target havuza bir olarak başvurursunuz. Kavramsal rehberlik, dikkat edilmesi gerekenler ve örnekler için bkz. forEachBatch kullanarak işlem hatlarındaki rastgele veri havuzlarına yazma.

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

Parametre Description
name Optional. İşlem hattı içindeki havuzu tanımlamak için benzersiz bir ad. Dahil edilmediğinde, varsayılan olarak UDF'nin adını kullanır.
batch_handler Bu, her mikro toplu iş için çağrılan kullanıcı tanımlı işlevdir (UDF).
Df Geçerli mikro toplu iş için verileri içeren Spark DataFrame.
batch_id Mikro toplu işlemin tamsayı kimliği. Spark her tetikleyici aralığı için bu kimliği artırır.
Bir batch_id, 0 akışın başlangıcını veya tam yenilemenin başlangıcını temsil eder. Kod, foreach_batch_sink aşağı akış veri kaynakları için tam yenilemeyi düzgün bir şekilde işlemelidir. Daha fazla bilgi için bkz . Tam yenileme.