Я хочу получить минимальное значение столбца в фрейме данных PySpark - PullRequest
0 голосов
/ 16 июня 2020

Я хочу создать новый столбец с минимальным значением compare_at_price. Если данные содержат значение, мы можем легко получить минимальное значение, набрав sumList1 = udf(lambda c: min(c), IntegerType()). Но у меня есть одна запятая в некоторых строках фрейма данных.

+--------------------+

|    compare_at_price|

+--------------------+

|               [,,,]|

|                  []|

|               [,,,]|

|[89.95, 89.95, 89.95|

|                  []|

|                  []|

Не могли бы вы помочь мне решить!

Ответы [ 2 ]

2 голосов
/ 16 июня 2020

Вы можете найти минимум столбцов типа ArrayType следующим образом:

from pyspark.sql.functions import col,array_min

resultDF = df.select(array_min(col("compare_at_price")).alias('min_price'))

resultDF.show(False)
0 голосов
/ 16 июня 2020

Сначала импортировать

import org.apache.spark.sql.functions.{min, max}

А затем

df.agg(min("compare_at_price")).show()
...