2015-12-29 20 views
13

Tôi đang sử dụng pyspark (Python 2.7.9/Spark 1.3.1) và có một khung dữ liệu GroupObject mà tôi cần lọc & sắp xếp theo thứ tự giảm dần. Cố gắng đạt được nó thông qua đoạn mã này.Nhóm dữ liệu SparkBởi và sắp xếp theo thứ tự giảm dần (pyspark)

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

Nhưng nó sẽ phát ra lỗi sau.

sort() got an unexpected keyword argument 'ascending' 

Trả lời

20

Trong phương pháp PySpark 1.3 sort không lấy tham số tăng dần. Bạn có thể sử dụng phương pháp desc thay vì:

from pyspark.sql.functions import col 

(group_by_dataframe 
    .count() 
    .filter("`count` >= 10") 
    .sort(col("count").desc())) 

hoặc desc chức năng:

from pyspark.sql.functions import desc 

(group_by_dataframe 
    .count() 
    .filter("`count` >= 10") 
    .sort(desc("count")) 

Cả hai phương pháp có thể được sử dụng với với Spark> = 1.3 (bao gồm Spark 2.x).

0

Tương tự như trên - nhưng sắp xếp trên lại tên tên cột (bí danh):

from pyspark.sql.functions import desc 

df=df.count().withColumnRenamed("count", "newColName")\ 
     .filter("`count` >= 10") 
     .sort(desc("newColName")) 
df.show() 
Các vấn đề liên quan