CertMaster

🧱 Apache Spark Fundamentals

DataFrame API, Spark SQL, трансформации, действия, оптимизация

Databricks Data Engineer · DE-Associate · ⏱️ 25 min · ❓ 6 вопр.

⚡ Spark Architecture

Driver — создаёт SparkContext, планирует DAG. Executors — выполняют реальную работу (task). Cluster Manager: YARN, Kubernetes, Databricks (на базе k8s). DAG (Directed Acyclic Graph) — план трансформаций. Иерархия StageTask.

🔄 Transformations vs Actions

Lazy Evaluation — трансформация не выполняется до вызова action. Narrow transformations: filter, select, map — без shuffle. Wide transformations: groupBy, join, distinct — требуют shuffle (expensive!). Actions: show(), count(), collect(), write().

📊 DataFrame API

Structured API. `spark.read`, `df.select()`, `df.filter()`, `df.groupBy().agg()`, `df.join()`, `df.write`. Catalyst Optimizer — оптимизирует запросы. Tungsten — управление памятью. Adaptive Query Execution (AQE) — оптимизация во время выполнения.

💡 Spark SQL & Caching

SQL-запросы напрямую в Spark. `spark.sql("SELECT ...")`. Temp Views: `df.createOrReplaceTempView("name")`. Caching: `df.cache()` или `df.persist(StorageLevel.MEMORY_AND_DISK)`. Кэш полезен только при многократном использовании одного и того же датасета.
💡 Ключевые моменты
📋 Пример кода
from pyspark.sql import functions as F

# DataFrame operations
df = spark.read.format("delta").load("/data/sales")

result = (df
  .filter(F.col("date") >= "2024-01-01")
  .groupBy("category")
  .agg(
    F.sum("amount").alias("total"),
    F.count("*").alias("count")
  )
  .orderBy(F.desc("total"))
)

result.show(10)

# Spark SQL alternative
df.createOrReplaceTempView("sales")
spark.sql("""
  SELECT category, SUM(amount) as total
  FROM sales
  WHERE date >= '2024-01-01'
  GROUP BY category
  ORDER BY total DESC
""")
🎯 Советы для экзамена
⚠️ Частые ошибки
🧠 Для запоминания: "FAST Cache" = Filter/select (narrow, fast), Aggregation/Sort/Transformation wide, Cache for reuse. "Actions Start Computation: show, count, write, collect"

Проверьте себя по теме «Apache Spark Fundamentals»

Бесплатные интерактивные тесты, пробный экзамен и полные уроки — на платформе CertMaster.

Начать бесплатно →