#pyspark #apache-spark-sql #databricks #aws-databricks
Вопрос:
Как рассчитать среднее,максимальное,минимальное значение одного и того же столбца из столбца фрейма данных в одной строке без переименования столбцов с помощью pyspark
Я использовал приведенную ниже команду, но она выдавала ошибку
df5=df5.agg(avg(col("Salaray")),min(col("Salaray")),max(col("Salaray")))
Комментарии:
1. Какую ошибку вы видите?
Ответ №1:
Не делай этого 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| # ---------- ---------- ----------