0
我想創建一個新的數據幀,其中列type
將成爲topX基於最高count
。 將有一個附加類型(他人),這將是所有,而TYPEx的同一組的name
總和。pyspark - 創建Top3組和聚合其他組/行
爲DF:
data = spark.createDataFrame([
("name1", "type1", 2), ("name1", "type2", 1), ("name1", "type3", 4), ("name1", "type3", 5), \
("name2", "type1", 6), ("name2", "type1", 7), ("name2", "type2", 8) \
],["name", "type", "cnt"])
data.printSchema()
什麼是:
|name |type|cnt|
|------|-----------
|name1 |typeA| 6|
|name1 |typeX| 5|
|name1 |typeW| 3|
|name1 |typeZ| 1|
|name2 |typeA| 7|
|name2 |typeB| 2|
| .... | ... | |
所得數據幀(用於頂部2)將是: 每個名字具有TOP2值+ '其它'(3組)
|name |type|cnt|
|------|-----------
|name1 |typeA| 6|
|name1 |typeX| 5|
|name1 |other| 4|
|name2 |typeA| 7|
|name2 |typeB| 2|
|name2 |other| 0|
| .... | ... | |
我不確定怎麼可以我跳過某一組的X行,然後開始聚合剩餘的行。
每個名稱是否有重複的類型?你的代碼似乎沒有給你顯示的表。 – Psidom