# databricks/spark-the-definitive-guide

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/databricks-spark-the-definitive-guide).**

3,099 stars · 2,893 forks · Scala · other

## Links

- GitHub: https://github.com/databricks/Spark-The-Definitive-Guide
- Homepage: http://shop.oreilly.com/product/0636920034957.do
- awesome-repositories: https://awesome-repositories.com/repository/databricks-spark-the-definitive-guide.md

## Description

This project is an educational resource and technical manual for Apache Spark, focused on the architecture and practical application of large-scale data processing. It serves as a guide for big data engineering and distributed computing, covering the principles of parallel processing and fault-tolerant data distribution.

The material provides instructional content on designing distributed ETL pipelines and implementing data analysis workflows. It includes tutorials for polyglot data processing, offering patterns and examples for using Python, Scala, and Java within a unified environment.

The guide covers core internal mechanisms including the Catalyst query optimizer, Tungsten memory management, and the lazy evaluation model. It also details the use of Resilient Distributed Datasets and the distributed dataframe API to manage massive datasets across compute clusters.

The documentation is delivered via notebooks that integrate executable code cells with descriptive text to validate data processing patterns.

## Tags

### Data & Databases

- [Distributed Dataframes](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-processing/dataframe-processing/distributed-dataframes.md) — Explains the abstraction of distributed dataframes for parallel processing across compute clusters.
- [Big Data Processing](https://awesome-repositories.com/f/data-databases/big-data-processing.md) — Provides a technical guide for implementing big data engineering workflows across distributed systems.
- [ETL Workflows](https://awesome-repositories.com/f/data-databases/data-pipeline-orchestration/etl-workflows.md) — Provides instructional content on designing ETL pipelines using Spark SQL and DataFrame APIs.
- [Distributed Computing](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-processing/distributed-processing-frameworks/distributed-computing.md) — Provides instructional material on the fundamental principles of distributed computing and parallel processing.
- [Distributed Datasets](https://awesome-repositories.com/f/data-databases/distributed-datasets.md) — Covers the implementation and usage of Resilient Distributed Datasets for fault-tolerant parallel processing.
- [Lazy Evaluation Frameworks](https://awesome-repositories.com/f/data-databases/lazy-evaluation-frameworks.md) — Describes the lazy evaluation model used to build logical execution plans before triggering actions.
- [Relational Query Optimizers](https://awesome-repositories.com/f/data-databases/query-plan-optimizations/relational-query-optimizers.md) — Provides detailed explanations of the Catalyst optimizer's rule-based and cost-based relational query transformation.
- [Rule-Based Plan Optimizations](https://awesome-repositories.com/f/data-databases/query-plan-optimizations/rule-based-plan-optimizations.md) — Details how recursive rewrite rules are used to optimize relational query plans.

### DevOps & Infrastructure

- [Lineage-Based Recovery](https://awesome-repositories.com/f/devops-infrastructure/fault-tolerance/lineage-based-recovery.md) — Explains how transformation lineage enables fault tolerance without full dataset replication.

### Education & Learning Resources

- [Big Data Algorithmic References](https://awesome-repositories.com/f/education-learning-resources/big-data-algorithmic-references.md) — Serves as a technical reference for big data engineering, specifically for ETL pipelines and dataset management.
- [Big Data Framework Guides](https://awesome-repositories.com/f/education-learning-resources/big-data-framework-guides.md) — Acts as a comprehensive technical manual for the architecture and application of Apache Spark.
- [Distributed Computing Curricula](https://awesome-repositories.com/f/education-learning-resources/distributed-computing-curricula.md) — Serves as a comprehensive educational resource for learning the core concepts and architecture of Apache Spark.
- [Code Examples](https://awesome-repositories.com/f/education-learning-resources/code-examples.md) — Includes executable code examples and curated datasets to demonstrate data processing patterns. ([source](https://cdn.jsdelivr.net/gh/databricks/spark-the-definitive-guide@master/README.md))
- [Polyglot Processing Patterns](https://awesome-repositories.com/f/education-learning-resources/educational-resources/reference-and-media/tutorials-media-curated-lists/technical-tutorials/data-analytics/data-analysis-tutorials/polyglot-processing-patterns.md) — Provides tutorials and patterns for implementing data analysis workflows using Python, Scala, and Java within a unified environment.

### Operating Systems & Systems Programming

- [Off-Heap Memory Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/custom-memory-allocators/off-heap-image-allocators/off-heap-memory-managers.md) — Explains the use of off-heap memory management to reduce Java garbage collection overhead.
- [Binary Memory Layouts](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/binary-memory-layouts.md) — Details the Tungsten engine's use of off-heap binary memory to optimize data processing performance.

### Programming Languages & Runtimes

- [Polyglot Pipeline Translation](https://awesome-repositories.com/f/programming-languages-runtimes/polyglot-pipeline-translation.md) — Demonstrates a polyglot architecture that translates multiple language APIs into a common execution engine.

### Scientific & Mathematical Computing

- [Polyglot Data Science Environments](https://awesome-repositories.com/f/scientific-mathematical-computing/polyglot-data-science-environments.md) — Offers tutorials for polyglot data processing using Python, Scala, and Java in a unified environment.
