Spark Lakehouse: PySpark, Delta, Iceberg & Streaming
Back to Spark Foundations & Local PySpark

Parquet, Partitioning & File Layout

Columnar encoding, partition pruning, and avoiding the small-files trap.

8 minutesVideo LessonPDF notes
🎯 Free Guest Mode: You are learning for free. Sign in to save your completion progress and quiz answers.
Loading progress...

Key moments

  1. Introduction to Data Organization — Pooja introduces the topic of partitioning and bucketing in Databricks and why data organization matters.
  2. Importance for Performance and Cost — Data organization significantly impacts performance and cost in big data environments.
  3. Partitioning vs Bucketing Overview — Partitioning splits data into directories, while bucketing distributes data into fixed-size buckets.
  4. Partitioning in Depth — Partitioning logically splits data into smaller subsets and improves query performance by scanning only relevant partitions.
  5. Directory Layout Example — The example shows sales data partitioned by year and month into directories like year=2024/month=01.
  6. Static Partitioning — Static partitioning pre-partitions data at write time with manually defined partition values, best for predictable low-volume partitions.
PDF notes

Frequently asked questions

What is partitioning?

Partitioning logically splits data into smaller subsets based on column values, storing each subset in its own directory.

What is bucketing?

Bucketing distributes data into fixed-size buckets to balance data distribution and improve processing speed.

How do partitioning and bucketing improve query performance?

Partitioning lets Spark scan only relevant partitions, while bucketing balances data distribution; both improve query efficiency and processing speed.

What is static partitioning?

Static partitioning pre-partitions data at write time, with users manually defining partition values.

When is static partitioning best?

It is best for predictable and low-volume partitions.

Do I need to filter on partition columns?

Yes, filtering on partition columns allows Spark to skip irrelevant partitions and avoid scanning unnecessary records.

How was this lesson?

Your feedback helps us refine explanations and catch bugs.