无法使用spark concat方法从列表创建新列?



我有下面的数据框架,我试图通过连接列表中的名称来创建一个新列

df=
----------------------------------
| name| department|  state| id| hash
------+-----------+-------+---+----
James|  Sales1   |null   |101|4df2
Maria|  Finance  |       |102|5rfg
Jen  |           |NY2    |103|234
key_list=['name','state','id']
df.withColumn('prim_key', concat(*key_list)
df.show()

但上面返回相同的结果

----------------------------------
| name| department|  state| id| hash
------+-----------+-------+---+----
James|  Sales1   |null   |101|4df2
Maria|  Finance  |       |102|5rfg
Jen  |           |NY2    |103|234

我怀疑这可能是由于DF中列名中的空格造成的。因此,我使用trim来删除列名中的所有空格,但运气不好。它返回相同的结果

有解决办法吗?

我找到了…问题是由于将结果分配给新的或现有的df

df=df.withColumn('prim_key', concat(*key_list)

最新更新