programing

Spark DataFrame groupBy 및 내림차순 정렬 (pyspark)

nasanasas 2020. 12. 10. 20:30
반응형

Spark DataFrame groupBy 및 내림차순 정렬 (pyspark)


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"))

참고 URL : https://stackoverflow.com/questions/34514545/spark-dataframe-groupby-and-sort-in-the-descending-order-pyspark

반응형