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");
où 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();
où