簡體   English   中英

PySpark DataFrame groupby 進入值列表?

[英]PySpark DataFrame groupby into list of values?

簡單地說,假設我有以下 DataFrame:

+-------------+----------+------+
|employee_name|department|salary|
+-------------+----------+------+
|        James|     Sales|  3000|
|      Michael|     Sales|  4600|
|       Robert|     Sales|  4100|
|        Maria|   Finance|  3000|
|        James|     Sales|  3000|
|        Scott|   Finance|  3300|
|          Jen|   Finance|  3900|
|         Jeff| Marketing|  3000|
|        Kumar| Marketing|  2000|
|         Saif|     Sales|  4100|
+-------------+----------+------+

我如何按部門分組並將所有其他值放入列表中,如下所示:

員工姓名 薪水
銷售量 [詹姆斯、邁克爾、羅伯特、詹姆斯、賽義夫] [3000, 4600, 4100, 3000, 4100]
金融 [瑪麗亞、斯科特、仁] [3000, 3300, 3900]
營銷 [傑夫,庫馬爾] [3000, 2000]

collect_listgroupBy子句一起使用

from pyspark.sql.functions import *

df.groupBy(col("department")).agg(collect_list(col("employee_name")).alias("employee_name"),collect_list(col("employee_name")).alias("salary"))

讓我們嘗試最少的輸入;

df.groupby('department').agg(*[collect_list(c).alias(c) for c in df.drop('department').columns]).show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM