Ved*_*dom 110 scala apache-spark apache-spark-sql
我尝试了df.orderBy("col1").show(10)
但它按升序排序.df.sort("col1").show(10)
也按降序排序.我查看了stackoverflow,我发现的答案都已过时或提交给RDD.我想在spark中使用原生数据帧.
Ami*_*bey 184
您还可以通过导入spark sql函数对列进行排序
import org.apache.spark.sql.functions._
df.orderBy(asc("col1"))
Run Code Online (Sandbox Code Playgroud)
要么
import org.apache.spark.sql.functions._
df.sort(desc("col1"))
Run Code Online (Sandbox Code Playgroud)
导入sqlContext.implicits._
import sqlContext.implicits._
df.orderBy($"col1".desc)
Run Code Online (Sandbox Code Playgroud)
要么
import sqlContext.implicits._
df.sort($"col1".desc)
Run Code Online (Sandbox Code Playgroud)
Ved*_*dom 77
它是在org.apache.spark.sql.DataFrame
对sort
的方法:
df.sort($"col1", $"col2".desc)
Run Code Online (Sandbox Code Playgroud)
注意$
并.desc
在sort
列内部对结果进行排序.
Nic*_*aro 28
PySpark中最简单的方法是添加参数ascending = False:
df.orderBy("col1", ascending=False).show(10)
Run Code Online (Sandbox Code Playgroud)
参考:http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.DataFrame.orderBy
小智 8
import org.apache.spark.sql.functions.desc
df.orderBy(desc("columnname1"),desc("columnname2"),asc("columnname3"))
Run Code Online (Sandbox Code Playgroud)