
Master Spark SQL and PySpark 3 using Python 3, and learn how to set up the environment for working with Spark in big data and data engineering.
Explore Spark SQL and PySpark with Python 3, use SQL style syntax and dataframe APIs, and learn to convert dataframes to temporary views, deploy and troubleshoot Spark applications.
Learn how to purchase and access the Spark SQL and PySpark course on Udemy, sign up or log in, and navigate the course interface with a 30-day money-back guarantee.
Explore the Udemy course landing page and learn to navigate the course content. Access video playback, use Q&A for support, and understand interface controls for a smoother learning journey.
Learn to navigate the Udemy video player, adjust playback speed from 0.5x to 2x, set video quality, enable captions and transcripts, and use notes and navigation to move between lectures.
Learn to use notes to capture key points and code, save with timestamps, and review notes across lectures, sorted by most recent or oldest.
Navigate between lectures using the right course content sidebar, expanding and collapsing sections to view 13 lectures totaling 122 minutes, and revise topics with sidebar controls.
Learn to seek timely support for ITVersity courses on Udemy using the Q&A feature, posting specific questions with details, and sharing code or links to accelerate troubleshooting.
Master Udemy q&a to get ITVersity support by selecting the current lecture, reviewing existing questions, and submitting well-structured inquiries with commands and screenshots.
Choose your spark environment, work multimode cluster, your PC if capable, or cloud nine and lithium arc, and practice with single-node Hadoop and Spark or multi-node clusters with lab access.
Establish a Spark SQL and PySpark 3 training environment, using either your employer's cluster or a self-setup, and access the sparc-sql and spark using Python 3 GitHub repository with notebooks.
Join a free data engineering community to access tips, news, jobs, labs, and coupons for I.T. first courses; engage in quizzes, live sessions, and corporate updates to boost your skills.
Rate the course with a five-star rating, provide detailed feedback through guided questions, and save your review; you can also share via Facebook, Twitter, or email.
Check your multimode cluster and access to lab two for business customers, and consider purchasing lab access or securing bulk discounts through your employer to accelerate learning Spark.
Set up a remote development environment in visual studio code using the remote development extension pack to connect to the gateway node of a Hadoop and Spark cluster.
Explore the gateway node data workspace by listing and sizing the /data folder, validate user permissions, and prepare for accessing datasets and HDFS in the Hadoop and Spark cluster.
Validate HDFS access and permissions on a multi-node Hadoop and Spark cluster from the gateway node by listing, copying, and deleting in user spaces and public directories.
Validate Hive on Hadoop in a multi-tenant cluster by creating a database and table, loading data, and running queries to confirm MapReduce, Yarn, and Spark operations.
Explore hadoop-env and yarn-env property files, review xml configurations including site xml, and understand how dfs, yarn, mapreduce, and hive settings govern runtime behavior on a Hadoop and Spark cluster.
Learn to open and review Hadoop HDFS and YARN property files with Visual Studio Code in a remote development setup, navigate permissions, and prepare for validating Spark properties.
Review Hive property files on a multinode Hadoop and Spark cluster by locating Hive conf files in conf, and verify environmental variables and runtime settings via terminal or VS Code.
Review spark 2.4.8 and spark 3.x properties, and validate spark components by inspecting conf files and the spark-hadoop integration during a remote VS Code session.
Launch and validate Spark shell with Scala on Spark 2, read JSON data from HDFS into a dataframe, print the schema, preview 20 records, and count 68,083 rows.
Validate pyspark cli with spark 2 by launching spark using python 3, setting spark_python accordingly, then read json data from the orders folder into a dataframe and count 68,008 records.
Validate spark sql cli with spark 2 by launching spark-sql, creating a database and table, loading local data, and running queries in a multi-tenant environment.
Review Spark 3 property files and important properties, including spark.master and the Hive integration, then validate Spark 3 configuration using the Spark 3 shell and Hadoop setup.
Validate spark shell with spark 3 by running spark sql queries, creating a database, and setting spark.sql.warehouse.dir to fix permissions.
Validate spark 3 with python 3 as programming language, set spark_python to python 3, launch spark 3, connect to the spark metastore, run queries on demo.orders, and drop retail database.
Validate Hadoop and Spark with Spark 3 by exporting the major version and launching Spark sequel to query orders and manage the Spark warehouse and metastore.
Evaluate your Windows 11 setup for a single node Hadoop and Spark lab with Docker, confirming at least four CPUs and 16 GB RAM to run resources effectively.
Learn how to check Windows system configuration using task manager on Windows 11. Review cpu, memory, disk details, plus storage and file explorer for Docker and Spark setup.
learn how to set up an Ubuntu-based development environment on Windows 11 using WSL, including verifying WSL availability, listing distributions, installing Ubuntu 20.04, and rebooting to complete setup.
Set up an Ubuntu VM on Windows with WSL, configure credentials, and prepare Docker Desktop for a Spark lab with Hadoop, ensuring at least 16 GB RAM and four cores.
Enable a Windows 11 Spark development environment by installing Docker Desktop with WSL2, configuring an Ubuntu-based virtual machine, and confirming the Docker engine runs for Hadoop and Spark setup.
Explore the Docker desktop interface on Windows 11, focusing on images, containers, and volumes. Learn to enable the delta based engine and WSL 2 for a single-node Spark setup.
Validate docker accessibility from both Windows PowerShell and an Ubuntu-based wsl virtual machine, verify docker ps, docker images, and docker compose, ensuring docker desktop is set up.
Set up Visual Studio Code on Windows to streamline Hadoop and Spark development with Docker, and enable the remote development extension kit to integrate WSL and remote machines.
Install and validate the remote development extension kit in Visual Studio Code to enable remote containers, then set up a Git repository for a single-node Spark and Hadoop cluster.
Clone a GitHub repository and configure a PySpark course workspace in Visual Studio Code on Windows, preparing a single-node Hadoop and Spark environment.
Master Visual Studio Code terminal usage for WSL with Hadoop and Spark on Windows 11. Open terminals in specific folders, adjust font size, and keep terminals minimal for performance.
Review the docker compose file that provisions a Hadoop and Spark lab, detailing the ITV lab and cluster DB services, ports, volumes, and startup dependencies.
Launch and manage a Docker-based Hadoop and Spark lab with Jupyter on Windows 11, using Docker Compose to start containers for Spark, Hive, and Postgres-backed components.
Assess Windows 11 resource usage for Hadoop and Spark labs, focusing on memory and CPU, Docker Compose containers, and key system requirements.
Review Docker desktop and docker compose to start the lab's two containers—the lab service and the cluster util DB service—on Windows. Verify they share a docker network for inter-container communication.
Learn to manage Hadoop and Spark lab components with docker compose, including starting, stopping, monitoring logs, and tearing down resources.
Validate Hadoop and Spark setup on Windows using Docker and Docker Compose, confirm HDFS, Hive, and YARN are running, and practice Spark shell and Spark SQL via Jupyter Lab.
learn how to set up a cloud-based development environment with AWS Cloud9, explore its browser-based IDE, and create environments to develop Python data engineering workflows on cloud platforms.
Set up an AWS Cloud9 environment for data engineering, choosing a t3.medium Ubuntu instance with Postgres and Jupyter, and add a single node Hadoop and Spark cluster with automatic shutdown.
Get comfortable with the AWS Cloud9 IDE by using the terminal, creating and running files, and adjusting editor settings; explore GitHub integration and Docker support for cloud data practice.
Verify your aws cloud9 environment by confirming ubuntu 18.04 or later and checking /etc/os-release with cat to ensure long-term support for spark sql and pyspark 3.
Learn how an EC2-backed AWS Cloud9 environment uses a 30-minute idle shutdown to save costs, sign into the console, and manage the Cloud9 lab demo instance.
Open the AWS Cloud9 security group rules to allow http traffic on port 80 for the Apache two web server, using the DNS alias and Elastic IP for stable address.
Learn how to stabilize access to web apps on AWS Cloud9 by allocating and associating an elastic IP, maintaining a consistent DNS alias, and handling IP changes after restarts.
Increase the AWS Cloud9 EBS volume from 10 GB to 32 GB via the EC2 console, reboot the instance, and verify the new size with df -h.
Set up a cloud-based Ubuntu environment on an AWS Cloud9 instance, install Docker and Docker Compose, and validate their installation for hands-on practice.
Clone the Spark SQL and PySpark 3 repository from my GitHub, set up Hadoop and Spark with Docker on AWS Cloud9, and bring up containers to explore the environment.
Review the docker compose file to set up a Hadoop and Spark lab on Windows with WSL and Docker Desktop, detailing the ITV lab and cluster util db containers.
Launch and manage the Hadoop and Spark lab with Docker Compose on Windows 11, starting containers for Hadoop, Spark, Hive, and Jupyter Lab, and monitor progress via logs.
Manage Hadoop and Spark lab environments with docker compose by building images, starting services, and tearing down containers. Monitor logs and clean up resources, including images, volumes, and networks.
Validate hadoop and spark setup using docker and docker-compose, verify hdfs and hive availability, and access the lab through jupyter lab for hands-on Spark SQL exploration.
Explore Python fundamentals and setup for Spark, including functions, lambda functions, collections, and MapReduce, with guidance on installing Python and using labs for SPARC certification.
Learn Python basics by declaring variables, dynamic typing, and type inspection; explore data types, type conversion, printing, and building loops with for and while, and understand indentation and simple sums.
Learn to define Python functions with def, pass functions as arguments to other functions, and use lambda for concise operations like sum of squares, cubes, and multiples.
Explore Python collections (lists, sets, and dicts) covering creation, indexing, duplicates, and common operations, and see how these foundations map to Spark collections for Spark data structures.
Explore map, filter, and reduce operations in Python on collections, demonstrating how to filter even numbers, map to squares, and reduce to a final total.
Set up data sets for basic I/O operations by cloning the repository, locating NYSE and retail_db datasets, and configuring file paths for local or lab environments.
Read a comma-separated file, convert data into a collection, and use map-reduce operations to compute the total revenue for a specific order, illustrating end-to-end data processing.
Learn to list commands and access help for commands across a Hadoop-like cluster, using gateway nodes, HDFS commands, and DFS help and usage to understand syntax and options.
List hdfs files with the dfs ls command and control output using options such as -h, -R, -t, -S, and -r to sort by name, time, or size.
Learn to create and manage HDFS directories and ownership, including creating user spaces under /user and configuring ownership and group with dfs -mkdir, -chown, or -chgrp.
Learn how to copy files from local file system into HDFS using copy from local (put) commands, handle patterns, create folders, and manage replication and data block distribution.
Copy files from HDFS to the local file system using get or copy to local, supporting patterns and multiple sources, with optional metadata preservation (-P).
Learn how to retrieve file metadata in Hadoop's dfs using dfs fc commands, exploring files, blocks, locations, replication factors, and sizes.
Preview HDFS data with dfs -tail and dfs -cat for text files, noting header existence and first lines, while avoiding large prints and non-text formats.
Examine how HDFS splits large files into blocks using dfs.blocksize, replicates each block across multiple nodes, and applies replication factors, as shown by 1 gb files and 128 MB blocks.
Examine how HDFS replication factor ensures reliability by storing multiple block copies, defaulting to three, and how replication, rack awareness, and file size govern storage and availability.
Use the df command to view hdfs cluster capacity, used, and available space in readable format, and summarize retail db folders and subfolders to identify top folders by size.
Explore how to use the HDFS stat command to retrieve file metadata, such as timestamp, size, type, block size, and replication factor, helping you understand HDFS file details.
Learn to view, interpret, and manage file permissions in a Unix-like environment, granting read, write, and execute rights to owner, group, and others using octal codes.
Override hadoop properties from the command line or a config file, review core-site.xml and hdfs-site.xml, and adjust block size and replication to control dfs behavior for MapReduce tasks.
Explore Spark as a distributed computing framework, set up a multi-node cluster, and learn APIs across Scala, Python, Java, and R to build and run apps on Spark clusters.
Review the spark environment setup with prerequisites like a 64-bit system and a 64-bit Java JDK; use Ubuntu on Windows via WSL or a VM.
Join ITVersity labs to access a hosted multi-node big data cluster with spark, hive, and kafka, and learn to run spark 1.6.3 or spark 2.x on yarn.
Explore the Apache Spark official documentation—from quickstart to programming guides, API docs, and deployment—and learn core modules like Spark SQL, data frames, streaming, and machine learning for certification readiness.
Understand the Spark modular architecture from the core Spark layer through Spark SQL and DataFrames, then explore structured streaming, machine learning libraries, and graphics pipelines.
Compare ADT and data frame in Spark, detailing partitions, blocks, and DFS, and demonstrate count triggering execution.
Develop a simple SPARC application to explore its architecture, launch SPARC with version two, and compare word count pipelines using ADT and DataFrame APIs.
Explore spark execution modes, cluster architecture with yarn, and how spark submit, deploy modes, and executors drive interactive and production data processing.
Read text data into Spark dataframes using CSV and text formats. Define schemas and cast data types with select and withColumn for typed results.
Learn to read data from hive tables and create a dataframe in Spark by integrating Hive and using spark.read.table, plus Spyglass SQL to query the data.
Learn the get-started overview for Spark SQL and the Spark metastore, including launching Spark, running essential DDL commands, and using voice commands to inspect files and metadata.
Explore Spark SQL documentation to navigate SQL data frames and datasets, practice with open-book exams, and learn how to access versions and run queries.
Learn to launch and use spark sql cli, connect to the cluster gateway, select and switch databases, and explore command options to run valid spark sql commands.
Access and review spark sql runtime properties from the command line and notebook, set per-session properties like spark.sql.warehouse.dir and spark.sql.catalog.implementation (Hive), via spark-shell, spark sql, or Jupiter hub.
Explore running operating system commands from Spark SQL and PySpark 3, using exclamation mark magic or system.process to execute Linux commands and view outputs in the Jupyter Hub environment.
Explore how Spark metastore warehouse directories create folders for databases, tables, and partitions, including default .db extensions and the spark.sql.warehouse.dir setting.
Learn to manage Spark metastore databases with Spark SQL by creating, listing, using, and dropping databases, including if not exists, cascade, and custom storage locations.
Manage spark metastore tables with spark sql by creating and listing tables, using the use command, and dropping databases, while defining csv data with column types and a comma delimiter.
Retrieve Spark metastore table metadata with Spark SQL describe commands, including describe, describe extended, and describe formatted, revealing column names, database name, created time, last access time, and file properties.
Explore how the Spark metastore stores metadata for tables, databases, and views, including names, columns, data types, and locations, enabling syntax checks and query execution.
Practice getting started with Spark SQL by launching Spark SQL, creating a username-prefixed database, connecting, listing and describing tables, and running multi-line queries in Scala or Python.
Learn basic Spark SQL transformations on dataframes, including filtering, joins, and aggregations, by building a two-table end-to-end solution and executing SQL queries with PySpark 3.
Explore Spark SQL fundamentals by performing selection, filtering, joins, aggregations, sorting, and analytics functions on data, with role-level transformations like masking and address splitting to enable compliant reporting.
Define problem statement to outline Spark SQL transformations, join orders and order items on foreign key, and compute daily revenue from order date and subtotal, filtering to closed orders.
Prepare Spark metastore tables for basic transformations using Spark SQL by creating orders and order_items, loading and validating data, then write queries to perform filtering, joining, and aggregating.
Learn how to project data with Spark SQL by selecting all columns or a subset, create derived columns with aliases, apply distinct, limit results, and drop unwanted fields in dataframes.
Filter data with Spark SQL where clause using equality, inequality, range, in, like, and boolean operators; handle nulls with is null and is not null, and derive values with functions.
Learn how to perform inner joins in Spark SQL, using on conditions and aliases to combine orders and order items, then apply filters for status and date.
Explore Spark SQL outer joins, including left, right, and full joins, and learn how nulls appear with parent and child tables like orders and order items, plus data quality troubleshooting.
Explore global and by key aggregations in Spark SQL to compute order counts, revenue, and daily product revenue using group by, having, and joins.
Sort data in Spark SQL using order by to perform ascending or descending, including composite sorting by multiple fields or expressions, with alias support, to tailor analysis and reporting.
Learn basic ddl and dml in spark sql, create and drop spark metastore tables, explore data types, add comments, load files, and compare managed versus external tables.
Learn to create Spark Megastore tables using the Spark SQL create statement, define column names and data types, and populate via insert in a landing zone.
Explore data types in Spark metastore tables, including primitive types and special types like array, map, and struct, with practical table creation and nested data examples.
Create a table with table-level and column-level comments using spark sql, then describe the table to review metadata and verify comments.
Load data from the local file system or HDFS into a Spark metastore table using Spark SQL load statements, ensuring matching file format and delimiter to prevent incorrect results.
Learn how to load data from an HDFS location into a Spark metadata table using the load statement, including path setup, source permissions, and verifying moved files.
Understand how Spark SQL load handles append with into table, adding files to the existing table, versus overwrite, which deletes existing data and loads only new files.
Create external spark metastore tables with Spark SQL, specify a location, load data from local filesystem or HDFS, and verify external table metadata with describe formatted.
Compare managed and external Spark metastore tables, noting that drops remove data and metadata for managed tables but only metadata for external tables, and that truncation applies to managed tables.
Explore Spark metastore table file formats, including sequence file, text file, rcfile, parquet, avro, and json; parquet is extensively used, rcfile is outdated, and text files power landing zones.
Learn how to manage Spark metastore objects by dropping tables and databases with Spark SQL, including managed vs external tables, if exists, and cascade strategies.
Truncate works only for managed tables in spark sql, deleting data while preserving structure, while external tables cannot be truncated; drop, create, load, and preview illustrate metastore behavior.
Create a managed Spark metastore table from a compressed text dataset, infer correct data types, load using the default delimiter, and validate results with queries and previews.
DISCLAIMER
This course requires you to download the following softwares
Docker
Visual Studio Code
If you are a Udemy Business user, please check with your employer before downloading software
As part of this course, you will learn all the key skills to build Data Engineering Pipelines using Spark SQL and Spark Data Frame APIs using Python as a Programming language. This course used to be a CCA 175 Spark and Hadoop Developer course for the preparation for the Certification Exam. As of 10/31/2021, the exam is sunset and we have renamed it to Apache Spark 2 and Apache Spark 3 using Python 3 as it covers industry-relevant topics beyond the scope of certification.
About Data Engineering
Data Engineering is nothing but processing the data depending upon our downstream needs. We need to build different pipelines such as Batch Pipelines, Streaming Pipelines, etc as part of Data Engineering. All roles related to Data Processing are consolidated under Data Engineering. Conventionally, they are known as ETL Development, Data Warehouse Development, etc. Apache Spark is evolved as a leading technology to take care of Data Engineering at scale.
I have prepared this course for anyone who would like to transition into a Data Engineer role using Pyspark (Python + Spark). I myself am a proven Data Engineering Solution Architect with proven experience in designing solutions using Apache Spark.
Let us go through the details about what you will be learning in this course. Keep in mind that the course is created with a lot of hands-on tasks which will give you enough practice using the right tools. Also, there are tons of tasks and exercises to evaluate yourself. We will provide details about Resources or Environments to learn Spark SQL and PySpark 3 using Python 3 as well as Reference Material on GitHub to practice Spark SQL and PySpark 3 using Python 3. Keep in mind that you can either use the cluster at your workplace or set up the environment using provided instructions or use ITVersity Lab to take this course.
Setup of Single Node Big Data Cluster
Many of you would like to transition to Big Data from Conventional Technologies such as Mainframes, Oracle PL/SQL, etc and you might not have access to Big Data Clusters. It is very important for you set up the environment in the right manner. Don't worry if you do not have the cluster handy, we will guide you through support via Udemy Q&A.
Setup Ubuntu-based AWS Cloud9 Instance with the right configuration
Ensure Docker is setup
Setup Jupyter Lab and other key components
Setup and Validate Hadoop, Hive, YARN, and Spark
Are you feeling a bit overwhelmed about setting up the environment? Don't worry!!! We will provide complementary lab access for up to 2 months. Here are the details.
Training using an interactive environment. You will get 2 weeks of lab access, to begin with. If you like the environment, and acknowledge it by providing a 5* rating and feedback, the lab access will be extended to additional 6 weeks (2 months). Feel free to send an email to support@itversity.com to get complementary lab access. Also, if your employer provides a multi-node environment, we will help you set up the material for the practice as part of the live session. On top of Q&A Support, we also provide required support via live sessions.
A quick recap of Python
This course requires a decent knowledge of Python. To make sure you understand Spark from a Data Engineering perspective, we added a module to quickly warm up with Python. If you are not familiar with Python, then we suggest you go through our other course Data Engineering Essentials - Python, SQL, and Spark.
Master required Hadoop Skills to build Data Engineering Applications
As part of this section, you will primarily focus on HDFS commands so that we can copy files into HDFS. The data copied into HDFS will be used as part of building data engineering pipelines using Spark and Hadoop with Python as the Programming Language.
Overview of HDFS Commands
Copy Files into HDFS using the put or copyFromLocal command using appropriate HDFS Commands
Review whether the files are copied properly or not to HDFS using HDFS Commands.
Get the size of the files using HDFS commands such as du, df, etc.
Some fundamental concepts related to HDFS such as block size, replication factor, etc.
Data Engineering using Spark SQL
Let us, deep-dive into Spark SQL to understand how it can be used to build Data Engineering Pipelines. Spark with SQL will provide us the ability to leverage distributed computing capabilities of Spark coupled with easy-to-use developer-friendly SQL-style syntax.
Getting Started with Spark SQL
Basic Transformations using Spark SQL
Managing Tables - Basic DDL and DML in Spark SQL
Managing Tables - DML and Create Partitioned Tables using Spark SQL
Overview of Spark SQL Functions to manipulate strings, dates, null values, etc
Windowing Functions using Spark SQL for ranking, advanced aggregations, etc.
Data Engineering using Spark Data Frame APIs
Spark Data Frame APIs are an alternative way of building Data Engineering applications at scale leveraging distributed computing capabilities of Apache Spark. Data Engineers from application development backgrounds might prefer Data Frame APIs over Spark SQL to build Data Engineering applications.
Data Processing Overview using Spark or Pyspark Data Frame APIs.
Projecting or Selecting data from Spark Data Frames, renaming columns, providing aliases, dropping columns from Data Frames, etc using Pyspark Data Frame APIs.
Processing Column Data using Spark or Pyspark Data Frame APIs - You will be learning functions to manipulate strings, dates, null values, etc.
Basic Transformations on Spark Data Frames using Pyspark Data Frame APIs such as Filtering, Aggregations, and Sorting using functions such as filter/where, groupBy with agg, sort or orderBy, etc.
Joining Data Sets on Spark Data Frames using Pyspark Data Frame APIs such as join. You will learn inner joins, outer joins, etc using the right examples.
Windowing Functions on Spark Data Frames using Pyspark Data Frame APIs to perform advanced Aggregations, Ranking, and Analytic Functions
Spark Metastore Databases and Tables and integration between Spark SQL and Data Frame APIs
Apache Spark Application Development and Deployment Life Cycle
Once you go through the content related to Spark using a Jupyter-based environment, we will also walk you through the details about how the Spark applications are typically developed using Python, deployed as well as reviewed.
Setup Python Virtual Environment and Project for Spark Application Development using Pycharm
Understand complete Spark Application Development Lifecycle using Pycharm and Python
Build zip file for the Spark Application, copy to the environment where it is supposed to run and run.
Understand how to review the Spark Application Execution Life Cycle.
All the demos are given on our state-of-the-art Big Data cluster. You can avail of one-month complimentary lab access by reaching out to support@itversity.com with a Udemy receipt.