私はpyspark(Python 2.7.9/Spark 1.3.1)を使用しており、データフレームGroupObjectがあり、これを降順でフィルタリングおよびソートする必要があります。このコードを介してそれを達成しようとしています。
group_by_dataframe.count().filter("`count` >= 10").sort('count', ascending=False)
ただし、次のエラーがスローされます。
sort() got an unexpected keyword argument 'ascending'
PySpark 1.3では、sort
メソッドは昇順パラメーターを取りません。代わりにdesc
メソッドを使用できます:
from pyspark.sql.functions import col
(group_by_dataframe
.count()
.filter("`count` >= 10")
.sort(col("count").desc()))
またはdesc
関数:
from pyspark.sql.functions import desc
(group_by_dataframe
.count()
.filter("`count` >= 10")
.sort(desc("count"))
両方のメソッドは、Spark> = 1.3(Spark 2.xを含む)で使用できます。
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
次のようにgroupByとorderByを使用することもできます
dataFrameWay = df.groupBy("firstName").count().withColumnRenamed("count","distinct_name").sort(desc("count"))