Noob Questions pyspark-获取具有最低/最高薪水的所有列

问题描述

我是pyspark的新手,了解各种聚合函数。但是,它们仅给出应用了聚合函数的列。例如,如果我的数据框df是-

Employee|Age

ABC|23

XYZ|32

df.select(min("Age")).show()-

得出的结果

min(Age)-23

我正在寻找这个-

Employee|Age

ABC|23

解决方法

使用联接。

df_data = [
    ('abc',23),('def',32)
]

df = spark.createDataFrame(df_data,['Employee','Age'])

df_min_age = df.groupBy().agg(min('Age').alias('Age'))
df_min = df.join(df_min_age,['Age'],'inner')

df_min.show()

+---+--------+
|Age|Employee|
+---+--------+
| 23|     abc|
+---+--------+