我尝试了 df.orderBy("col1").show(10)
但是它按升序排序。 df.sort("col1").show(10)
也按升序排序。我在stackoverflow上查找答案,但发现所有答案都过时了或者只适用于RDD。我想使用Spark中的本地DataFrame。
我尝试了 df.orderBy("col1").show(10)
但是它按升序排序。 df.sort("col1").show(10)
也按升序排序。我在stackoverflow上查找答案,但发现所有答案都过时了或者只适用于RDD。我想使用Spark中的本地DataFrame。
import org.apache.spark.sql.functions._
df.orderBy(asc("col1"))
import org.apache.spark.sql.functions._
df.sort(desc("col1"))
导入 sqlContext.implicits._
import sqlContext.implicits._
df.orderBy($"col1".desc)
import sqlContext.implicits._
df.sort($"col1".desc)
..orderBy("col1", "col2")
。 - Dansort
方法的实现在 org.apache.spark.sql.DataFrame
中。
df.sort($"col1", $"col2".desc)
在 sort
内部使用 $
和 .desc
来按列对结果进行排序。
import org.apache.spark.sql.functions._
和 import sqlContext.implicits._
还可以为您提供许多不错的功能。 - David Griffindf.sort($"Time1", $"Time2".desc) SyntaxError: invalid syntax
,$符号出了问题。 - kavya仅限于PySpark
我在查找如何在PySpark中执行相同操作时遇到了这篇文章。最简单的方法是只需添加参数ascending=False:
df.orderBy("col1", ascending=False).show(10)
参考文献: http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.DataFrame.orderBy
import org.apache.spark.sql.functions.desc
df.orderBy(desc("columnname1"),desc("columnname2"),asc("columnname3"))
df.sort($"ColumnName".desc).show()
DataFrames
,并应用连接(这里是内部连接),我们可以在选择每个DF的不同元素后进行排序(以ASC方式):Dataset<Row> d1 = e_data.distinct().join(s_data.distinct(), "e_id").orderBy("salary");
其中e_id
是应用连接的列,按工资升序排序。
此外,我们也可以使用Spark SQL:
SQLContext sqlCtx = spark.sqlContext();
sqlCtx.sql("select * from global_temp.salary order by salary desc").show();
这里是