Přeskočit na obsah
Batch Processing

Apache Spark — distribuované batch zpracování velkých dat

12 min čtení
Apache SparkBatch ProcessingBig DataPySpark

Spark je nejrozšířenější engine pro zpracování velkých dat. In-memory computing, PySpark a Spark SQL.

Spark — základy

Distribuované zpracování — data se rozdělí mezi uzly clusteru.

from pyspark.sql import SparkSession
from pyspark.sql.functions import col, sum, avg, year, month, count

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

orders = spark.read.parquet("s3://lake/orders/")
customers = spark.read.parquet("s3://lake/customers/")

revenue = (
    orders.filter(col("status") == "completed")
    .join(customers, "customer_id")
    .groupBy(year("order_date").alias("year"), "segment")
    .agg(sum("total_czk").alias("revenue"), count("*").alias("orders"))
)

revenue.write.format("delta").mode("overwrite")
    .save("s3://lake/marts/revenue/")

Optimalizace

  • Partitioning — podle nejčastějších filtrů
  • Caching — opakovaně používané datasety
  • Broadcast join — malé lookup tabulky
  • AQE — automatická optimalizace v Spark 3+

Shrnutí

Spark je standard pro distribuované zpracování. PySpark a Spark SQL pokrývají ETL i analytiku.

CORE SYSTEMS tým

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