Introduction
Following are sort functions
| SPARK SQL SORT FUNCTION SYNTAX | SPARK FUNCTION DESCRIPTION | | ---------------------------------------------- | ------------------------------------------------------------------------------------------------- | | asc(columnName: String): Column | asc function is used to specify the ascending order of the sorting column on DataFrame or DataSet | | asc_nulls_first(columnName: String): Column | Similar to asc function but null values return first and then non-null values | | asc_nulls_last(columnName: String): Column | Similar to asc function but non-null values return first and then null values | | desc(columnName: String): Column | desc function is used to specify the descending order of the DataFrame or DataSet sorting column. | | desc_nulls_first(columnName: String): Column | Similar to desc function but null values return first and then non-null values. | | desc_nulls_last(columnName: String): Column | Similar to desc function but non-null values return first and then null values. |
asc() – ascending function
asc function is used to specify the ascending order of the sorting column on DataFrame or DataSet.
Example in Java:
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.functions;
public class SortFunctions {
public static void main(String[] args) {
SparkSession spark = SparkSession.builder()
.appName("SortFunctionsExample")
.master("local")
.getOrCreate();
Dataset<Row> df = spark.createDataset(Arrays.asList(
RowFactory.create(1, "apple"),
RowFactory.create(3, "banana"),
RowFactory.create(2, "lemon")
), Encoders.tuple(Encoders.INT(), Encoders.STRING()).schema());
df.sort(functions.asc("id")).show();
}
}
output:
+---+-------+
| id| fruit|
+---+-------+
| 1| apple|
| 2| lemon|
| 3| banana|
+---+-------+
asc_nulls_first() – ascending with nulls first
Similar to asc function but null values return first and then non-null values.
Example in Java:
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.functions;
import java.util.Arrays;
public class SortFunctions {
public static void main(String[] args) {
SparkSession spark = SparkSession.builder()
.appName("SortFunctionsExample")
.master("local")
.getOrCreate();
Dataset<Row> df = spark.createDataset(Arrays.asList(
RowFactory.create(null, "kiwi"),
RowFactory.create(3, "banana"),
RowFactory.create(2, "lemon")
), Encoders.tuple(Encoders.INTEGER(), Encoders.STRING()).schema());
df.sort(functions.asc_nulls_first("id")).show();
}
}
output:
+----+-------+
| id| fruit|
+----+-------+
|null| kiwi|
| 2| lemon|
| 3| banana|
+----+-------+
asc_nulls_last() – ascending with nulls last
Similar to asc function but non-null values return first and then null values.
Example in Java:
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.functions;
import java.util.Arrays;
public class SortFunctions {
public static void main(String[] args) {
SparkSession spark = SparkSession.builder()
.appName("SortFunctionsExample")
.master("local")
.getOrCreate();
Dataset<Row> df = spark.createDataset(Arrays.asList(
RowFactory.create(null, "kiwi"),
RowFactory.create(3, "banana"),
RowFactory.create(2, "lemon")
), Encoders.tuple(Encoders.INTEGER(), Encoders.STRING()).schema());
df.sort(functions.asc_nulls_last("id")).show();
}
}
output:
+----+-------+
| id| fruit|
+----+-------+
| 2| lemon|
| 3| banana|
|null| kiwi|
+----+-------+
desc() – descending function
desc function is used to specify the descending order of the DataFrame or DataSet sorting column.
Example in Java:
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.functions;
import java.util.Arrays;
public class SortFunctions {
public static void main(String[] args) {
SparkSession spark = SparkSession.builder()
.appName("SortFunctionsExample")
.master("local")
.getOrCreate();
Dataset<Row> df = spark.createDataset(Arrays.asList(
RowFactory.create(1, "apple"),
RowFactory.create(3, "banana"),
RowFactory.create(2, "lemon")
), Encoders.tuple(Encoders.INT(), Encoders.STRING()).schema());
df.sort(functions.desc("id")).show();
}
}
output:
+---+-------+
| id| fruit|
+---+-------+
| 3| banana|
| 2| lemon|
| 1| apple|
+---+-------+
desc_nulls_first() – descending with nulls first
Similar to desc function but null values return first and then non-null values.
Example in Java:
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.functions;
import java.util.Arrays;
public class SortFunctions {
public static void main(String[] args) {
SparkSession spark = SparkSession.builder()
.appName("SortFunctionsExample")
.master("local")
.getOrCreate();
Dataset<Row> df = spark.createDataset(Arrays.asList(
RowFactory.create(null, "kiwi"),
RowFactory.create(3, "banana"),
RowFactory.create(2, "lemon")
), Encoders.tuple(Encoders.INTEGER(), Encoders.STRING()).schema());
df.sort(functions.desc_nulls_first("id")).show();
}
}
output:
+----+-------+
| id| fruit|
+----+-------+
|null| kiwi|
| 3| banana|
| 2| lemon|
+----+-------+
desc_nulls_last() – descending with nulls last
Similar to desc function but non-null values return first and then null values.
Example in Java:
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.functions;
import java.util.Arrays;
public class SortFunctions {
public static void main(String[] args) {
SparkSession spark = SparkSession.builder()
.appName("SortFunctionsExample")
.master("local")
.getOrCreate();
Dataset<Row> df = spark.createDataset(Arrays.asList(
RowFactory.create(null, "kiwi"),
RowFactory.create(3, "banana"),
RowFactory.create(2, "lemon")
), Encoders.tuple(Encoders.INTEGER(), Encoders.STRING()).schema());
df.sort(functions.desc_nulls_last("id")).show();
}
}
output:
+----+-------+
| id| fruit|
+----+-------+
| 3| banana|
| 2| lemon|
|null| kiwi|
+----+-------+
