2017-09-13 107 views
0

如何查找存储在单元格中的列表的最小值? 我可以做一个UDF,但它感觉像一个矫枉过正。 min功能从pyspark.sql.functions只适用于组(这是groupBy的结果)。PySpark列表的最小值

min_ = udf(lambda inarr: min(inarr), IntegerType()) 
myDataFrameWithMin = myDataFrame.withColumn('min_value', min_(F.col('position_list'))) 

回答

1

如果导入pyspark.sql.functions和Python的min被覆盖,你仍然可以__builtins__前缀访问它,例如:

min_ = udf(lambda inarr: __builtins__.min(inarr), IntegerType()) 
+0

有没有办法根本不使用udfs? – ashim

0

只是排序,然后取第一个值/行。

df.sort(col, ascending=True)