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
'source' 카테고리의 다른 글
jquery click on anchor 요소 힘을 맨 위로 스크롤하시겠습니까? (0) | 2023.08.15 |
---|---|
문자열(C#)을 "곱"할 수 있습니까? (0) | 2023.08.15 |
GORM 시간 초과 시 MariaDB 세션을 제대로 종료할 수 없음 (0) | 2023.08.15 |
안드로이드에서 의도를 사용하여 전화를 거는 방법은 무엇입니까? (0) | 2023.08.15 |
PythonTypeError: 형식 문자열에 대한 인수가 부족합니다. (0) | 2023.08.15 |