我需要能够按升序和降序对列进行排序,并允许空值排在第一位或空值排在最后。使用 RDD,我可以将 sortByKey 方法与自定义比较器一起使用。我想知道是否有使用 Dataset API 的相应方法。我看到了如何将 desc/asc 添加到列,但我对空值排序一无所知。
最佳答案
您也可以使用数据集 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|
+----+
同样的事情适用于
desc_nulls_last
和 desc_nulls_first
.
关于apache-spark - 在 Spark SQL 中更改空值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39381678/