
Preview the end-to-end PySpark developer course, covering introduction to Spark, Spark session, RDD operations, cluster execution architecture, persistence, Spark shared variables, Spark SQL architecture, DataFrame fundamentals, ETL, and performance optimization.
Identify the prerequisites and versions for setting up pyspark, including java 8+ and python 2.7+ (prefer 2.8+), and py4j 0.10.9+, then install java, python, spark, and configure environment variables.
Install Java by downloading the JDK to set up the Java development and runtime environment, understand the JVM, compile and run Java programs, and configure PATH and JAVA_HOME on Windows.
Install spark, extract the tar file, and set environment variables (spark home, path) to run pyspark and spark shell, ensuring Java and Python compatibility.
Install and configure winutils for PySpark on Windows, set Hadoop home and environment variables, and use the text file api to load a local file into a data frame.
Install PyCharm, download the community version from jetbrains.com, set up a Python 3.9 interpreter, and run a test file to print hello spark developers.
Explore PyCharm basics, from configuring a Python interpreter and runtime arguments to using autofill, refactor, and code navigation features that speed up editing and debugging Python scripts.
Master python runtime arguments using argv, where argv[0] is the script name and argv[1], argv[2] are parameters, and edit configurations to pass them in a hello world example with PyCharm.
Set the python interpreter and project structure in PyCharm to connect Python and Spark. Create the spark context via spark session, then test with parallelize to verify integration.
Learn to debug Python applications in PyCharm using breakpoints, the debugger, and the console, and navigate frames, variables, and watches to pinpoint issues.
Discover how HDFS, a Hadoop distributed file system, tackles big data storage and processing challenges using commodity hardware, fault tolerance, and horizontal scaling with Spark.
Explore how HDFS uses a name node to manage data nodes and metadata, and how the secondary name node preserves edit logs and image to enable fault-tolerant checkpoints.
Explore how hdfs splits files into data blocks, sets a 128 MB default block size in hdfs-site.xml, and uses replication with a default factor of three to tolerate node failures.
Explore rack awareness and how HDFS places data block replicas across racks to prevent simultaneous failure, ensuring faster access while avoiding both replicas on the same rack.
Open the read with the open method on the distributed file system, fetch metadata from the name node, stream blocks from data nodes via a data input stream, then close.
Practice using Hadoop fs or HDFS to list commands, view ls options with usage, and access full documentation with help, including -C, -D, and -H.
Learn Hadoop fs directory management with mkdir and rmdir, including -p for existing paths, -R for recursive deletes, and -f and skip trash for resilient removal and cleanup.
Copy data from HDFS to the local system using get or copy, mastering flags like -F, -f, and -P, and using patterns to copy single or multiple files.
List and sort files and directories in HDFS using the ls command, explore help for options, and use -R, -C, -r, -s, and -T to control order, recursion, and display.
Copy data from local to hdfs using the put command or copy from local, copying contents with data files/* and using -f to overwrite and -p to preserve timestamp.
Preview files in HDFS using head, tail, and cat commands, learn to print the first and last ten records, and combine HDFS with Unix pipes for streaming data.
Explore the hdfs stat command to print file or directory statistics, including modification time, size in bytes, type, 128 MB block size, replication, user, and permissions, with format options.
Learn to check HDFS storage with Hadoop fs df, using -h for human-readable sizes, -s for totals, and -v for headers, including per-folder and full-path details.
Explore how to retrieve HDFS metadata with Hadoop commands, including block size, replication, and rack locations, and learn to generate file- and block-level reports in a single-node PySpark environment.
Learn HDFS file permissions mirroring Linux, with owner, group, and others, including read and write rights for files, and directory permissions plus octal and symbolic mode examples.
Override hdfs properties by editing hdfs-site.xml to set replication and block size. Use -D or conf options during copy or setrep to change replication on existing files.
Learn Python fundamentals for PySpark development and install and use Jupyter Notebook via Anaconda to write and run Python code in a Python 3 notebook.
Explore Python's main features, including its general-purpose, easy-to-learn design, its interpreted bytecode execution via a Python virtual machine, and its dynamic, object-oriented typing that supports portability and extension.
Explore Python basics, including identifiers, multiline statements with backslash, quotes, and comments; handle user input and single-line statements; distinguish interactive versus script mode with command line arguments.
Explore assigning values to x, y, and z, passing multiple values, and distinguishing global from local variables, including the global keyword and scope precedence.
Explore how to print with variables and string formatting, and use dir to view a string's properties and methods, with help revealing built-in and magic methods.
Explore Python operators and how arithmetic, assignment, comparison, logical, identity, and membership operators work on variables. Learn how memory addresses and the copy method affect variable references and list copies.
Explore how to create and import Python modules, access their functions and variables, and inspect built-in versus external modules using dir and time.sleep examples.
Master Python's numeric datatypes, int, float, and complex, and understand dynamic typing, long removal in python 3.x. Cast between int, float, and str; format numbers; use range, max, and math.
Learn string types in Python, treat strings as arrays, index, slice, and split characters, loop over them, use repetition and concatenation, and apply membership checks with in and not in.
Learn Python list datatypes, including list creation, mutability, indexing, slicing, and common operations like append, delete, length, concatenation, and membership, with list comprehension techniques.
Explore Python list methods, including length, max, and mean, and operations like append, clear, copy, count, insert, pop, remove, reverse, sort, and sorted with a key.
Explore Python tuples, including empty and non-empty forms and their immutability. Learn tuple operations like concatenation, indexing, and the count and index methods, and forming one-element tuples with a comma.
Learn Python sets, created with curly braces or set(), and grasp properties: unordered, no indices, no duplicates, and immutable by default. Apply add, remove, and union, intersection, and difference.
Master python dictionaries by using key-value pairs to store data, access and update entries, enforce unique keys, and leverage common methods like get, keys, values, and items.
Explore Python date and time with the datetime and time modules; create datetime objects, access date components, format with strftime, and understand epoch ticks and sleep.
Learn to write Python conditional statements using if, elif, and else, and master indentation with a colon. Explore inline shorthand if else and the pass statement for empty blocks.
Master Python for loops to iterate over lists, tuples, dictionaries, sets, and strings, honoring colon syntax and indentation, and control flow with break, continue, and pass.
Explore Python while loops, executing statements while a condition stays true, with break after five, continue to skip an iteration, and an else block when the condition becomes false.
Explore how to define and call Python functions using def, with parameters and arguments, return values, and practical examples of default, keyword, arbitrary, and positional parameters.
Learn to write Python lambda functions as anonymous one-expression functions with flexible parameters, assign them to variables, and use them inside other functions for doubling, tripling, and more.
Explore map, reduce, and filter as core Python and Spark tools. Learn how map applies a function to iterables, with Python 2 vs 3 differences and uppercasing examples.
Learn the Python filter function, which applies a single-argument function to one iterable to filter items, returning those greater than 60, as shown on a marks list (70, 65, 99).
Learn how python's reduce function, imported from func tools, applies a two-argument function cumulatively to a sequence, starting with an initial value, illustrated by summing a numbers list to 64.
Master Python file handling with the open method, read/write/append modes, line-by-line reads, tell and seek, and operations like rename, remove, and existence checks using the os module.
Explore Python object oriented programming basics by building classes, creating objects, and using self, methods, and attributes. Learn camel case naming, instantiation, dot notation, and returning values.
Explore how Python initializes objects via the __init__ method, assign and access attributes with self, and implement get and set methods to manage object state.
Explore class attributes in python oops with a pet example, showing how they differ from instance attributes, and how to access and count class-wide instances.
Explore how to use Python's os module to view, set, get, and modify environment variables, including os.environ, handling missing keys, and configuring PyCharm run configurations for productionizing your code.
Master python exception handling with try/except, else, finally, and named and user defined errors; implement logging, reraise, and correct exit codes for robust production scripts.
Explore how the Python traceback module helps you trace, extract, and print stack traces to locate the origin of exceptions, using the print_exception function for debugging.
Learn to use Python's logging module to monitor and debug applications by configuring levels (debug to critical), choosing console or file output, and customizing log formats.
Learn how to integrate Python logging with exception stack traces using the exception info parameter, capturing full stack traces in a log file for easier debugging.
Learn how to replace the default root logger with a custom Python logger per module by configuring loggers, handlers, and formatters, including file handlers and level settings, for production use.
Configure Python logging with a dedicated config file, defining loggers, handlers, and formatters. Load the file via logging.config and switch between file and console outputs, including propagate settings.
Explore why Spark was developed to solve scaling challenges that hindered traditional MapReduce and Hadoop, offering an in-memory, unified framework that supports multiple languages.
Discover how Spark functions as a unified analytics engine for large-scale data processing, with in-memory storage, dataframes and datasets, and libraries for SQL, streaming, MLlib, and graphics.
Explore spark main components, including core APIs with transformations and actions on adidas, and the spark sql and dataframes layer for batch and streaming data processing.
Explore how Spark session unifies entry points for data frames in Spark 2.x, replacing Spark context and SQL context, and learn to create and use the Spark object.
Launch a spark session, explore spark context, submit pyspark jobs with spark-submit, and compare cluster versus client deploy modes and logs access.
configure spark applications with spark conf and spark-submit, set shuffle partitions, default 200, move to 300, and manage environment variables and default overrides via a properties file.
Configure spark submit options, including driver memory, executor memory, and executor cores. Learn to pass jars, packages, and python files for Oracle connectivity and Avro format support.
Discover the resilient distributed datasets (RDD) core in Spark, covering immutability, lineage, partitions, DAGs, and lazy evaluation, with transformations and actions enabling in-memory fault-tolerant processing of structured and semi-structured data.
Explore the problems of adt in spark, including opaque compute functions and data that hinder optimization. Learn the adt properties and why datasets and dataframes enable pruning and better performance.
Explore five methods to create rdds—from external data and hdfs, to local files, python lists, and existing dataframes—using spark context or spark session.
Explore low-level PySpark transformations such as map, flatMap, and filter alongside lazy evaluation and actions. See how an ADT and a linear record track transformations for efficient data processing.
Explore map values, a row-level transformation that applies a function to all values for each key without changing the keys, unlike map which operates on entire records.
Explore PySpark join transformations, including inner, left outer, right outer, and full outer joins, plus cogroup and Cartesian joins on k-v pairs, with practical examples.
Explore total and key aggregations in PySpark, using reduce and count for total aggregations and by key operations for grouping, along with practical examples on orders and order items.
Explore soft link and combiner to optimize shuffle in Spark, and learn how shuffle operations impact partitions and key aggregation APIs like reduce by key and aggregate by key.
Explore key aggregation in spark—group by key, reduce by key, aggregate by key, and count by key—learning when to avoid group by key due to lack of a combiner.
Learn how reduce by key performs per-entity, per-partition associative reductions with a combiner, and see examples that compute total revenue per order and max revenue per product.
Learn how aggregate by key in spark uses zero value, sequence operation, and combiner operation to merge per-partition results into a final key value, with max revenue and sum examples.
Explain how Spark's aggregate by key computes per-key counts and max revenue across partitions using sequence and combiner operations. Contrast with reduce by key's input-output type constraints.
Learn to use count by key in spark, producing a collection dictionary of key-count pairs with no shuffle. Apply items, values, and keys to count orders by status.
Sort data in spark using sort by key on ADT, with ascending order and optional partitions, including single and multi-key sorting by customer id and status.
Explore global and per-group ranking in spark with python, using sort by key or take ordered, and group by key with flatMap to rank within categories.
Explore set transformations in Spark with Python, including union, intersection, and subtract. Learn how distinct elements and matching data structures affect results, illustrated by July and August orders.
Explore PySpark sampling in end-to-end development, covering sample and text sample, with-replacement, fraction, and seed, to produce random versus fixed-size data selections from an ADT.
Discover how repartition and coalesce adjust the number of partitions in Spark, understand partitions as blocks stored on a node, and examine default hdfs block-based partitioning for performance optimization.
Spark loads a 670 MB HDFS file into six partitions, then filters down to 32 records without changing partitions; coalesce reduces to one partition, or repartition increases partitions.
Explore how repartition reshapes data into equal-sized partitions to optimize spark parallelism, including when to repartition or use coalesce, and the impact of shuffling on performance.
Repartition and sort within partitions by converting data to key-value pairs, applying a partition function, and sorting keys in ascending or descending order.
Use the Koalas API to apply coalesce, reducing partitions without shuffle. When shuffle is true, it acts like repartition, allowing more partitions with a narrow dependency.
Understand repartition vs coalesce in Spark: repartition performs a full shuffle to create new partitions, while coalesce reduces partitions with minimal shuffling, useful after extraction, joins, or filtering.
Store the processed ADT results in HDFS as text or sequence files using Spark context APIs, with optional compression via core-site.xml codec settings, and learn reading and writing sequence files.
Cover the remaining API for each in the transformations and actions, and explain its importance in the accumulator chapter.
Introduction to Spark.
HDFS Commands
Python Course.
Why Spark was developed.
What is Spark and its features.
Spark Main Components.
Introduction to Spark.
HDFS Commands
Introduction to SparkSession
RDD Fundamentals
What is RDD
RDD Properties
When to use RDD
RDD Problems
Create RDD
Different Ways to Create RDDs
RDD Operations
Transformations - Low Level
Transformations - Join Types
Actions - Total Aggregations
Shuffle and Combiner
Transformations - Key Aggregations
Transformations - Sorting
Transformations - Ranking
Transformations - Set
Transformations - Sampling
Transformations - Partition
Transformations - Repartition
Transformations - Repartition and Sort
Transformations - Coalesce
Transformations - Repartition Vs Coalesce
Extraction
Spark Cluster Execution Architecture_Full Architecture
Spark Cluster Execution Architecture_YARN As Spark Cluster Manager
Spark Cluster Execution Architecture_JVMs across Clusters
Spark Cluster Execution Architecture- Commonly Used Terms in Execution Framework
Spark Cluster Execution Architecture - Narrow and Wide Transformations
Spark Cluster Execution Architecture - DAG Scheduler
Spark Cluster Execution Architecture - Task Scheduler
RDD Persistence
Spark Shared Variables
SparkSQL Architecture
Detailed SparkSession Features
DataFrame Fundamentals
Datatypes
DataFrame Rows
DataFrame Columns
DataFrame ETL
DataFrame ETL_Introduction to Transformations and Extraction
DataFrame ETL_DataFrame APIs Introduction Extraction
DataFrame ETL_DataFrame APIs Selection
DataFrame ETL_DataFrame APIs Filter or Where
DataFrame ETL_DataFrame APIs Sorting
DataFrame ETL_DataFrame APIs Set
DataFrame ETL_DataFrame APIs Join
DataFrame ETL_DataFrame APIs Aggregations
DataFrame ETL_DataFrame APIs GroupBy
DataFrame ETL_DataFrame APIs Windows
DataFrame ETL_DataFrame Built-in Functions Introduction
Performance and Optimization