我有一个包含以下列和相应值的数据框(原谅我的格式,但不知道如何以表格格式):
Src_ip dst_ip V1 V2 V3 top
"A" "B" xx yy zz "V1"
现在我想添加一个列,让我们说 top_value
,它取与V1中字符串对应的列的值 .
Src_ip dst_ip V1 V2 V3 top top_value
"A" "B" xx yy zz "V1" xx
所以基本上,获取与“top”列中的值对应的值,并创建一个名为“top_value”的新列
我尝试过创建UDF以及使用字符串作为别名但无法这样做 . 谁能请帮忙 .
1 回答
您可以将
V1
,V2
和V3
列收集为struct
并使用top
列传递给udf
函数并将值提取为scala
哪个应该给你
pyspark
pyspark中的等效代码将是
此外,您可以在
struct
函数中使用的列表中定义列名,这样您就不必对它们进行硬编码 .我希望答案是有帮助的