Apache Spark Python - Transformations - Solution - Get Daily Revenue

This article provides a step-by-step guide on how to analyze revenue data using PySpark, a Python API for Apache Spark. Learn how to filter data, join datasets, group data, and calculate revenue. The article is complemented by a video tutorial that provides visual aid and practical examples for better understanding.

Reading and Filtering Data

In this section, you will learn how to read data from JSON files, filter data based on specific conditions, and perform operations on the filtered data using PySpark.

orders_filtered = orders.filter("order_status IN ('COMPLETE', 'CLOSED')")

Joining Datasets

You will understand how to join two datasets based on a common key column using PySpark.

orders_join = orders_filtered.join(order_items, orders_filtered.order_id == order_items.order_item_order_id)

Grouping and Aggregating Data

Learn how to group data based on a specific column, perform aggregation functions, and calculate revenue using PySpark.

revenue_daily = orders_join.groupBy('order_date').agg(round(sum('order_item_subtotal'), 2).alias('revenue')).orderBy('order_date')

The video tutorial demonstrates how to analyze revenue data using PySpark, covering concepts such as reading and filtering data, joining datasets, grouping data, and calculating revenue. It provides a visual walkthrough of the code examples and practical exercises to enhance learning.

Watch the video tutorial here

Hands-On Tasks

Description of the hands-on tasks. Provide a list of tasks that the reader can perform to apply the concepts discussed in the article.

  1. Read data from JSON files and filter orders for ‘COMPLETE’ or ‘CLOSED’ status.
  2. Join orders and order_items datasets based on the order ID.
  3. Group the data by order_date and calculate daily revenue.


In conclusion, this article has provided a detailed guide on analyzing revenue data using PySpark. By following the step-by-step instructions and engaging with the provided video tutorial, readers can gain hands-on experience in processing and understanding revenue data. Practice the tasks shared in the article and join the community for further learning and discussions on PySpark data analysis.

Solutions - Problem 7

Get revenue for each date using orders which are either COMPLETE or CLOSED.

  • Read data from orders and filter for COMPLETE or CLOSED.
  • Read data from order_items
  • Join orders and order_items using order_id
  • Group data by order_date and get revenue for each day.
  • Sort the data using order_date.

Remember to sign up for our 10 node state of the art cluster/labs to learn Spark SQL using our unique integrated LMS.