Как рассчитать среднее,максимальное,минимальное значение из столбца фрейма данных в одной строке без переименования столбцов

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