Přeskočit na obsah
Streaming

Spark Structured Streaming — unifikované batch a stream zpracování

10 min čtení
Spark StreamingApache SparkMicro-BatchReal-Time

Spark Structured Streaming zpracovává proudy dat stejným API jako batch. Jeden kód pro historická i real-time data.

Structured Streaming

Stream jako nekonečná tabulka — nová data jsou nové řádky.

from pyspark.sql import SparkSession
from pyspark.sql.functions import window, sum, count

spark = SparkSession.builder.appName("Streaming").getOrCreate()

orders = (
    spark.readStream.format("kafka")
    .option("subscribe", "orders").load()
    .select(from_json(col("value").cast("string"), schema).alias("d"))
    .select("d.*")
)

revenue = (
    orders.withWatermark("order_time", "10 minutes")
    .groupBy(window("order_time", "5 minutes"))
    .agg(sum("amount").alias("revenue"))
)

revenue.writeStream.format("delta")
    .option("checkpointLocation", "/cp/revenue")
    .start("/data/revenue")

Trigger modes

  • Default — micro-batch ASAP
  • Fixed interval — processingTime
  • Once / Available-now — jednorázové zpracování

Shrnutí

Spark Structured Streaming je ideální pro týmy se Sparkem, které chtějí přidat stream processing.

CORE SYSTEMS tým

Enterprise architekti a AI inženýři. Stavíme systémy, které fungují.