J'ai essayé df.orderBy("col1").show(10)
mais il a trié par ordre croissant. df.sort("col1").show(10)
trie également par ordre décroissant. J'ai regardé stackoverflow et les réponses que j'ai trouvées étaient toutes obsolètes ou renvoyées à des RDD . J'aimerais utiliser le dataframe natif dans spark.
137
Réponses:
Vous pouvez également trier la colonne en important les fonctions Spark SQL
Ou
importation de sqlContext.implicits._
Ou
la source
asc
mot - clé n'est pas nécessaire:..orderBy("col1", "col2")
.C'est
org.apache.spark.sql.DataFrame
pour lasort
méthode:Remarque
$
et à l'.desc
intérieursort
de la colonne pour trier les résultats.la source
import org.apache.spark.sql.functions._
etimport sqlContext.implicits._
vous offre également de nombreuses fonctionnalités intéressantes.df.sort($"Time1", $"Time2".desc) SyntaxError: invalid syntax
au symbole $PySpark uniquement
Je suis tombé sur ce post en cherchant à faire de même dans PySpark. Le moyen le plus simple est d'ajouter simplement le paramètre ascending = False:
Référence: http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.DataFrame.orderBy
la source
la source
la source
Dans le cas de Java:
Si nous utilisons
DataFrames
, lors de l'application de jointures (ici jointure interne), nous pouvons trier (en ASC) après avoir sélectionné des éléments distincts dans chaque DF comme:où
e_id
est la colonne sur laquelle la jointure est appliquée lors du tri par salaire dans ASC.En outre, nous pouvons utiliser Spark SQL comme:
où
la source