PySpark将单元素数组/列表转换为字符串

2024-04-26 17:48:23 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有这样一个df:

   id  type  length  key1             key2     key3
0  1   A     144     [value1,value2]  value3
1  1   B     20      value4           [value5]
2  4   A     54                                [value6]

PySpark中是否有办法从列表中删除value5和value6,因为它们是唯一的元素?我想把这个应用到所有的单元格。产出将是:

   id  type  length  key1             key2     key3
0  1   A     144     [value1,value2]  value3
1  1   B     20      value4           value5
2  4   A     54                                value6

Tags: iddftypelengthpysparkkey2key1value1
1条回答
网友
1楼 · 发布于 2024-04-26 17:48:23
    Df= df.withColumn('key3', F.when(F.size('key3) ==1),F.col('key3').getItem(1)  ).when(F.size('column_2) ==1),F.col('column_2').getItem(1))
 .otherwise ('key3')

您可以继续像这样添加条件

.when(F.size('col_2) ==1),F.col('col_2').getItem(1)) 

首先需要找到数组的大小,如果找到1,则获取第一个元素。我是通过手机回复的,请尝试一下,我相信应该可以

相关问题 更多 >