Skip to main content
The orderBy() and sort() commands in Spark are used to sort the rows of a DataFrame based on one or more columns. Both commands are interchangeable and can be used to achieve the same result. Sorting is essential for organizing data in a specific order, such as ascending or descending, for analysis or reporting. orderBy() is a method of the DataFrame class.

1. Syntax

PySpark:
Spark SQL:

2. Parameters

  • cols: A list of column names (as strings) or column objects to sort by.
  • ascending: A boolean or list of booleans specifying the sort order. Default is True (ascending).

3. Return Type

  • Returns a new DataFrame with rows sorted based on the specified columns.

4. Examples

Example 1: Sorting by a Single Column in Ascending Order

PySpark:
Spark SQL:
Output:

Example 2: Sorting by a Single Column in Descending Order

PySpark:
Spark SQL:
Output:

Example 3: Sorting by Multiple Columns

PySpark:
Spark SQL:
Output:

Example 4: Using sort() Instead of orderBy()

PySpark:
Spark SQL:
Output:

Example 5: Sorting with Null Values

PySpark:
Spark SQL:
Output:

Example 6: Sorting by Multiple Columns with Mixed Order

PySpark:
Spark SQL:
Output:

Example 7: Sorting with Nulls Last

PySpark:
Spark SQL:
Output:

Example 8: Sorting by Expression

PySpark:
Spark SQL:
Output:

5. Common Use Cases

  • Sorting data for display in reports or dashboards.
  • Preparing data for machine learning by ordering features or labels.
  • Sorting data before performing window operations (e.g., ranking, cumulative sums).

6. Performance Considerations

  • Use orderBy() or sort() judiciously on large datasets, as it involves shuffling and sorting.
  • Consider using repartition() or coalesce() to optimize performance when working with large datasets.

7. Key Takeaways

  1. The orderBy() and sort() commands are used to sort the rows of a DataFrame based on one or more columns.
  2. Both commands are interchangeable and support sorting in ascending or descending order.
  3. In Spark SQL, similar functionality can be achieved using ORDER BY.
  4. Works efficiently on large datasets when combined with proper partitioning and caching.