使用包含列的數據框,列中的值是列表,我如何處理這樣的列id | values1 | [1,1,2,4,3,5,6]2 | [1,2,3,5,6,7,8]....對于每一行,取前三個值并獲取前三個值中的最大值預計為:id | max_value1 | 22 | 3....
1 回答

繁星點點滴滴
TA貢獻1803條經驗 獲得超3個贊
您可以使用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 F
df
.withColumn("max_value", F.expr("array_max(slice(values, 1, 3))"))
.show(truncate=False)
+----------------+-
|id |max_value|
+----------------+-
|1? |2? ? ? |
|2? |3? ? ? |
+----------------+-
添加回答
舉報
0/150
提交
取消