source

PySpark에서 내림차순으로 정렬

lovecheck 2023. 8. 15. 11:13
반응형

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 포함)과 함께 사용할 수 있습니다.

사용 순서:

df.orderBy('column_name', ascending=False)

전체 답변:

group_by_dataframe.count().filter("`count` >= 10").orderBy('count', ascending=False)

http://spark.apache.org/docs/2.0.0/api/python/pyspark.sql.html

지금까지 가장 편리한 방법은 다음과 같습니다.

df.orderBy(df.column_name.desc())

특별한 가져오기가 필요하지 않습니다.

다음과 같이 groupBy 및 orderBy를 사용할 수 있습니다.

dataFrameWay = df.groupBy("firstName").count().withColumnRenamed("count","distinct_name").sort(desc("count"))

Inpyspark 2.4.4

1) group_by_dataframe.count().filter("`count` >= 10").orderBy('count', ascending=False)

2) from pyspark.sql.functions import desc
   group_by_dataframe.count().filter("`count` >= 10").orderBy('count').sort(desc('count'))

1)과 1)은 짧고 읽기 쉬우며,
그래서 나는 2)보다 1)을 더 좋아합니다.

RDD.sortBy(키함수, 오름차순=참, numPartitions=삭제됨)

예:

words =  rdd2.flatMap(lambda line: line.split(" "))
counter = words.map(lambda word: (word,1)).reduceByKey(lambda a,b: a+b)

print(counter.sortBy(lambda a: a[1],ascending=False).take(10))

PySpark는 Pandas 스타일의 정렬 연산자를 추가했습니다.ascending버전 1.4.0에는 키워드 인수가 있습니다.이제 사용할 수 있습니다.

df.sort('<col_name>', ascending = False)

또는 사용할 수 있습니다.orderBy함수:

df.orderBy('<col_name>').desc()

대신 pyspark.sql.functions.desc를 사용할 수 있습니다.

from pyspark.sql.functions import desc

g.groupBy('dst').count().sort(desc('count')).show()

언급URL : https://stackoverflow.com/questions/34514545/sort-in-descending-order-in-pyspark

반응형