Data Engineering with Scala and Spark: A practical guide helping you build streaming and batch pipelines that process massive amounts of data using Scala by Eric Tome, David Radford, Rupam Bhattacharjee
English | February 9, 2024 | ISBN: 1804612588 | 323 pages | EPUB | 11 Mb
English | February 9, 2024 | ISBN: 1804612588 | 323 pages | EPUB | 11 Mb
Take your data engineering skills to the next level by learning to utilize Scala and functional programming to create continuous and scheduled pipelines that ingest, transform, and aggregate data
Key Features
- Transform data into a clean and trusted source of information for your organization using Scala
- Build streaming and batch-processing pipelines with step-by-step explanations
- Implement and orchestrate your pipelines by following CI/CD best practices and test-driven development
Book Description
Performance in distributed computing environments is a critical factor for data engineers. If performance in a distributed computing environment is not optimal, several consequences can arise like slow data processing, bottlenecks and latency, inefficient resource utilization, etc. 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 to leverage the Scala programming language on the Spark framework and the latest cloud technologies to build continuous and triggered data pipelines. You will 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 will then understand DataFrame API, Dataset API, and Spark SQL API and its use. You will further learn about data profiling and quality in Scala. You will also orchestrate and performance-tune 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.
What you will learn- Set up your development environment to build pipelines in Scala
- Use polymorphic functions, type parameterization, and scala implicit
- Use Spark DataFrames, Datasets, and Spark SQL with Scala
- Read and write data to object stores
- Build and chain data transforms using Scala
- Profile and clean your data using Deequ
- Performance-tune your data pipelines using Scala
Who This Book Is For
This book is aimed at data engineers who are experienced in working with data but want to understand how to transform raw data into a clean, trusted, and valuable source of information for their organization using Scala and the latest cloud technologies.
Table of Contents- Scala Essentials for Data Engineers - A Quick Tour
- Environment Setup - Install IDE, Spark, MySQL and Object Storage
- Introduction to Spark and its APIs - Dataframe, Dataset and SQL
- Data Ingestion and Targets - Databases
- Data Ingestion and Targets - Object Stores, Streaming Sources and Sinks
- Data Transformation - Selection, Filtering, Sorting, Aggregation, Joins, and Working with Complex Types
- Data Profiling and Data Quality - Deequ
- Test Driven Development, Code Health and Maintainability
- CI/CD with GitHub
- Orchestrating Your Data Engineering Pipelines
- Performance Tuning
- Building Batch Pipelines using Spark & Scala
- Building Streaming Pipelines using Spark & Scala