首页 > 解决方案 > 我想获取 PySpark 数据框中列的最小值

问题描述

我想用 compare_at_price 的最小值创建一个新列。如果数据包含值,我们可以很容易地得到最小值 sumList1 = udf(lambda c: min(c), IntegerType())。但是我在数据框中的某些行中只有逗号。

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

|    compare_at_price|

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

|               [,,,]|

|                  []|

|               [,,,]|

|[89.95, 89.95, 89.95|

|                  []|

|                  []|

你能帮我解决吗!

标签: python-3.xdataframeapache-sparkpysparkapache-spark-sql

解决方案


您可以通过以下方式找到 ArrayType 列的最小值:

from pyspark.sql.functions import col,array_min

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

resultDF.show(False)

推荐阅读