Book Image

PySpark Cookbook

By : Denny Lee, Tomasz Drabas
Book Image

PySpark Cookbook

By: Denny Lee, Tomasz Drabas

Overview of this book

Apache Spark is an open source framework for efficient cluster computing with a strong interface for data parallelism and fault tolerance. The PySpark Cookbook presents effective and time-saving recipes for leveraging the power of Python and putting it to use in the Spark ecosystem. You’ll start by learning the Apache Spark architecture and how to set up a Python environment for Spark. You’ll then get familiar with the modules available in PySpark and start using them effortlessly. In addition to this, you’ll discover how to abstract data with RDDs and DataFrames, and understand the streaming capabilities of PySpark. You’ll then move on to using ML and MLlib in order to solve any problems related to the machine learning capabilities of PySpark and use GraphFrames to solve graph-processing problems. Finally, you will explore how to deploy your applications to the cloud using the spark-submit command. By the end of this book, you will be able to use the Python API for Apache Spark to solve any problems associated with building data-intensive applications.
Table of Contents (13 chapters)
Title Page
Packt Upsell
Contributors
Preface
Index

Finding the fewest number of connections


When you're flying to many cities, one of the recurring problems is to determine either the shortest path between two cities or the shortest time of travel. From the viewpoint of the airline traveler, the aim is to find the shortest set of flights between two cities. From the viewpoint of the airline, determining how to route their passengers between cities as efficiently as possible increases customer satisfaction and lowers prices (less fuel, wear and tear on equipment, ease for the flight crew, and so on). Within the context of GraphFrames and graph algorithms, one approach would be to use the breadth first search (BFS) algorithm to help us find the shortest path between these airports.

Getting ready

Ensure that you have created the graph GraphFrame from the preceding subsections.

How to do it...

Let's start using our BFS algorithm to determine whether there are any direct flights between SFO and SEA:

subsetOfPaths = graph.bfs(
   fromExpr = "id = ...