pyspark 列值是一个列表

使用包含列的数据框,列中的值是列表,我如何处理这样的列


id    |   values

1     |   [1,1,2,4,3,5,6]

2     |   [1,2,3,5,6,7,8]

....

对于每一行,取前三个值并获取前三个值中的最大值


预计为:


id  | max_value

1   | 2

2   | 3

....


胡说叔叔
浏览 101回答 1
1回答

繁星点点滴滴

您可以使用pyspark 中的slice和array_max函数sql.functions例如,通过传递array_max(slice(values, 1, 3))to F.expr,您首先是 list( slice) 并取 max ( array_max)import pyspark.sql.functions as Fdf.withColumn("max_value", F.expr("array_max(slice(values, 1, 3))")).show(truncate=False)+----------------+-|id |max_value|+----------------+-|1  |2      ||2  |3      |+----------------+-
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python