首页 > 解决方案 > 菜鸟问题 pyspark - 获取所有列的最低/最高工资

问题描述

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

Employee|Age

ABC|23

XYZ|32

得出的结果df.select(min("Age")).show()-

min(Age)- 23

我想得到这个-

Employee|Age

ABC|23

标签: pysparkmin

解决方案


使用连接。

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|
+---+--------+

推荐阅读