> ## Documentation Index
> Fetch the complete documentation index at: https://docs.prophecy.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# OrderBy gem for Data Engineering

> Sort your data based on one or more columns

<Panel>
  <Info>
    Dependencies:

    * ProphecySparkBasicsPython 0.0.1+
    * ProphecySparkBasicsScala 0.0.1+
  </Info>

  <Info>
    Cluster requirements:

    * UC dedicated clusters 14.3+ supported
    * UC standard clusters 14.3+ supported
    * Livy clusters 3.0.1+ supported
  </Info>
</Panel>

Sorts a DataFrame on one or more columns in ascending or descending order.

## Parameters

| Parameter     | Description                                | Required |
| ------------- | ------------------------------------------ | -------- |
| DataFrame     | Input DataFrame to be sorted               | True     |
| Order columns | Columns to sort DataFrame by               | True     |
| Sort          | Order of sorting - ascending or descending | True     |

## Example

<img src="https://mintcdn.com/prophecy-62973bd0/5tvw_2e98LqB5rz7/data-engineering/gems/transform/img/orderby_eg_0.png?fit=max&auto=format&n=5tvw_2e98LqB5rz7&q=85&s=08ba67ba9a0a3703aca46ce5d186bd9c" alt="Example usage of OrderBy" width="940" height="260" data-path="data-engineering/gems/transform/img/orderby_eg_0.png" />

## Spark Code

<CodeGroup>
  ```python example.py theme={null}
  def Sort(spark: SparkSession, in0: DataFrame) -> DataFrame:
   return in0.orderBy(col("name").asc(), col("updated_at").desc())
  ```

  ```scala example.scala theme={null}
  object Sort {
   def apply(spark: SparkSession, in: DataFrame): DataFrame =
   in.orderBy(col("updated_at").desc, col("name").asc)
  }
  ```
</CodeGroup>
