J'utilise pyspark (Python 2.7.9/Spark 1.3.1) et dispose d'un GroupObject de structure de données que je dois filtrer et trier dans l'ordre décroissant. Essayer de le réaliser via ce morceau de code.
group_by_dataframe.count().filter("`count` >= 10").sort('count', ascending=False)
Mais il jette l'erreur suivante.
sort() got an unexpected keyword argument 'ascending'
Dans PySpark 1.3, la méthode sort
ne prend pas de paramètre croissant. Vous pouvez utiliser la méthode desc
à la place:
from pyspark.sql.functions import col
(group_by_dataframe
.count()
.filter("`count` >= 10")
.sort(col("count").desc()))
ou desc
fonction:
from pyspark.sql.functions import desc
(group_by_dataframe
.count()
.filter("`count` >= 10")
.sort(desc("count"))
Les deux méthodes peuvent être utilisées avec Spark> = 1.3 (y compris Spark 2.x).
Utilisez orderBy :
group_by_dataframe.count().filter("`count` >= 10").orderBy('count', ascending=False)
http://spark.Apache.org/docs/2.0.0/api/python/pyspark.sql.html
vous pouvez utiliser groupBy et orderBy comme suit aussi
dataFrameWay = df.groupBy("firstName").count().withColumnRenamed("count","distinct_name").sort(desc("count"))