Joh*_*ach 3 apache-spark apache-spark-sql
我需要能够以升序和降序对列进行排序,并且还必须允许null为第一个或null为最后一个。使用RDD,我可以将sortByKey方法与自定义比较器一起使用。我想知道是否有使用Dataset API的相应方法。我知道如何将desc / asc添加到列中,但是我对null排序没有任何了解。
您也可以使用数据集API:
scala> val df = Seq("a", "b", null).toDF("x")
df: org.apache.spark.sql.DataFrame = [x: string]
scala> df.select('*).orderBy('x.asc_nulls_last).show
+----+
| x|
+----+
| a|
| b|
|null|
+----+
scala> df.select('*).orderBy('x.asc_nulls_first).show
+----+
| x|
+----+
|null|
| a|
| b|
+----+
Run Code Online (Sandbox Code Playgroud)
desc_nulls_last
和和都可以使用desc_nulls_first
。
正如 Oleksandr 提到的,有一个拉取请求。现在您可以选择使用“首先为空”或“最后为空”
scala> spark.sql("select * from spark_10747 order by col3 nulls last").show
+----+----+----+
|col1|col2|col3|
+----+----+----+
| 6| 7| 4|
| 6| 11| 4|
| 6| 15| 8|
| 6| 15| 8|
| 6| 7| 8|
| 6| 12| 10|
| 6| 9| 10|
| 6| 13|null|
| 6| 10|null|
+----+----+----+
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3100 次 |
最近记录: |