如何在不使用 pyspark 重命名列的情况下从单行中的数据框列计算同一列的平均值、最大值、最小值
我使用了下面的命令,但它抛出了一个错误
df5=df5.agg(avg(col("Salaray")),min(col("Salaray")),max(col("Salaray")))
如何在不使用 pyspark 重命名列的情况下从单行中的数据框列计算同一列的平均值、最大值、最小值
我使用了下面的命令,但它抛出了一个错误
df5=df5.agg(avg(col("Salaray")),min(col("Salaray")),max(col("Salaray")))
from pyspark.sql.functions import *
一些函数如pyspark.sql.functions.min
和pyspark.sql.functions.max
会与内置函数min
、max
、 、 混淆,并会在以后引起许多奇怪的问题。改为这样做:
from pyspark.sql import functions as F
alias
如果要重命名列,请使用F.avg(F.col('salary')).alias('avg_salary')
from pyspark.sql import functions as F
(df
.agg(
F.avg(F.col('salary')).alias('avg_salary'),
F.min(F.col('salary')).alias('min_salary'),
F.max(F.col('salary')).alias('max_salary'),
)
.show()
)
# +----------+----------+----------+
# |avg_salary|min_salary|max_salary|
# +----------+----------+----------+
# | 200.0| 100| 300|
# +----------+----------+----------+