Spark DataFrame GROUP BY et trier dans l'ordre décroissant (pyspark)
j'utilise pyspark (Python 2.7.9/Spark 1.3.1) et j'ai un objet de groupe dataframe que je dois filtrer et trier dans l'ordre décroissant. Essaie de l'atteindre par le biais de ce morceau de code.
group_by_dataframe.count().filter("`count` >= 10").sort('count', ascending=False)
mais il lance l'erreur suivante.
sort() got an unexpected keyword argument 'ascending'
23
demandé sur
rclakmal
2015-12-29 18:57:37
3 réponses
In PySpark 1.3 sort
la méthode ne prend pas le paramètre Ascendant. Vous pouvez utiliser desc
méthode à 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 une étincelle >= 1,3 (incluant L'étincelle 2.x).
48
répondu
zero323
2017-03-31 18:08:53
Utiliser 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
18
répondu
Henrique Florêncio
2017-03-08 17:52:06
similaire à ce qui précède - mais triez sur le nom de colonne renommé (alias):
from pyspark.sql.functions import desc
df=df.count().withColumnRenamed("count", "newColName")\
.filter("`count` >= 10")
.sort(desc("newColName"))
df.show()
1
répondu
Grant Shannon
2017-11-23 14:30:28