Book Image

Data Engineering with Scala and Spark

By : Eric Tome, Rupam Bhattacharjee, David Radford
Book Image

Data Engineering with Scala and Spark

By: Eric Tome, Rupam Bhattacharjee, David Radford

Overview of this book

Most data engineers know that performance issues in a distributed computing environment can easily lead to issues impacting the overall efficiency and effectiveness of data engineering tasks. While Python remains a popular choice for data engineering due to its ease of use, Scala shines in scenarios where the performance of distributed data processing is paramount. This book will teach you how to leverage the Scala programming language on the Spark framework and use the latest cloud technologies to build continuous and triggered data pipelines. You’ll do this by setting up a data engineering environment for local development and scalable distributed cloud deployments using data engineering best practices, test-driven development, and CI/CD. You’ll also get to grips with DataFrame API, Dataset API, and Spark SQL API and its use. Data profiling and quality in Scala will also be covered, alongside techniques for orchestrating and performance tuning your end-to-end pipelines to deliver data to your end users. By the end of this book, you will be able to build streaming and batch data pipelines using Scala while following software engineering best practices.
Table of Contents (21 chapters)
1
Part 1 – Introduction to Data Engineering, Scala, and an Environment Setup
4
Part 2 – Data Ingestion, Transformation, Cleansing, and Profiling Using Scala and Spark
10
Part 3 – Software Engineering Best Practices for Data Engineering in Scala
13
Part 4 – Productionalizing Data Engineering Pipelines – Orchestration and Tuning
16
Part 5 – End-to-End Data Pipelines

Part 4 – Productionalizing Data Engineering Pipelines – Orchestration and Tuning

In this part, Chapter 10 delves into data pipeline orchestration, focusing on seamless task coordination and failure handling. It introduces tools such as Apache Airflow, Argo, Databricks Workflows, and Azure Data Factory. Chapter 11 highlights the Spark UI’s significance in performance optimization, covering the basics, tuning, resource optimization, and data handling techniques such as skewing, indexing, and partitioning.

This part has the following chapters: