
Set up your Spark development environment in three steps: install JDK and Hadoop WinUtils, install Spark binaries with env vars, and configure IntelliJ IDEA to run a test Spark app.
Install spark 3 binaries, set spark_home and path, configure pyspark_python and pythonpath, adjust log4j to warn, and verify with spark-shell and pyspark.
Explore how Spark stream processing extends Spark dataframe APIs to handle late-arriving records, incremental computations, and job failures with restart, enabling 15-minute interval analytics.
Explore the evolution from DStream to Structured Streaming, highlighting micro-batch processing, event time support, and unified DataFrame APIs built on Spark SQL for real-time stream processing.
Explore streaming sources and sinks from a json directory, process via micro-batches with checkpointing, and apply append, update, complete output modes, including maxFilesPerTrigger.
Learn to build a Spark streaming app that reads invoices from Kafka, creates notification data, and writes to Kafka with invoice number as the key and JSON value.
Learn to read Avro-formatted Kafka records in Spark using from_avro and an Avro schema, then compute total purchases and rewards per customer and publish notification records back to Kafka.
Join a streaming dataframe with a static dataframe in Spark structured streaming to enrich login events with Cassandra data, and update last_login in real time via foreachBatch.
Apply watermarks to both streams to clean the state store in stream-to-stream joins. Use a 30-minute watermark on the impression and click events to bound data.
About the Course
I am creating Apache Spark 3 - Real-time Stream Processing using the Scala course to help you understand the Real-time Stream processing using Apache Spark and apply that knowledge to build real-time stream processing solutions. This course is example-driven and follows a working session like approach. We will be taking a live coding approach and explain all the needed concepts along the way.
Who should take this Course?
I designed this course for software engineers willing to develop a Real-time Stream Processing Pipeline and application using the Apache Spark. I am also creating this course for data architects and data engineers who are responsible for designing and building the organization’s data-centric infrastructure. Another group of people is the managers and architects who do not directly work with Spark implementation. Still, they work with the people who implement Apache Spark at the ground level.
Spark Version used in the Course
This Course is using the Apache Spark 3.x. I have tested all the source code and examples used in this Course on Apache Spark 3.0.0 open-source distribution.