为了账号安全,请及时绑定邮箱和手机立即绑定

pyspark 列值是一个列表

pyspark 列值是一个列表

胡说叔叔 2023-08-08 10:22:59
使用包含列的数据框,列中的值是列表,我如何处理这样的列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      |


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


查看完整回答
反对 回复 2023-08-08
  • 1 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信