Comment sortinger par colonne en ordre décroissant dans Spark SQL?

J’ai essayé df.orderBy("col1").show(10) mais il a sortingé par ordre croissant. df.sort("col1").show(10) sortinge également par ordre décroissant. J’ai regardé le stackoverflow et les réponses que j’ai trouvées étaient toutes obsolètes ou renvoyées aux DDR . Je voudrais utiliser le dataframe natif dans spark.

Vous pouvez également sortinger la colonne en important les fonctions spark sql

 import org.apache.spark.sql.functions._ df.orderBy(asc("col1")) 

Ou

 import org.apache.spark.sql.functions._ df.sort(desc("col1")) 

importer sqlContext.implicits._

 import sqlContext.implicits._ df.orderBy($"col1".desc) 

Ou

 import sqlContext.implicits._ df.sort($"col1".desc) 

C’est dans org.apache.spark.sql.DataFrame pour la méthode de sort :

 df.sort($"col1", $"col2".desc) 

Notez que les .desc $ et .desc de sortinger les résultats.

Le plus simple est d’append le paramètre croissant = False:

 df.orderBy("col1", ascending=False).show(10) 

Référence: http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.DataFrame.orderBy

 df.sort($"ColumnName".desc).show() 

Dans le cas de Java:

Si nous utilisons des DataFrames , tout en appliquant des jointures (ici la jointure Inner), nous pouvons sortinger (en ASC) après avoir sélectionné des éléments distincts dans chaque DF comme:

 Dataset d1 = e_data.distinct().join(s_data.distinct(), "e_id").orderBy("salary"); 

e_id est la colonne sur laquelle la jointure est appliquée lors du sorting par salaire en ASC.

En outre, nous pouvons utiliser Spark SQL comme:

 SQLContext sqlCtx = spark.sqlContext(); sqlCtx.sql("select * from global_temp.salary order by salary desc").show(); 

  • spark -> SparkSession
  • Salaire -> GlobalTemp View.