有没有一种方法可以创建一个新的列,如下面在Pyspark中显示的Dataframe?你知道吗
我一直在尝试:
import pyspark.functions as F
df.withColumn('result', [F.col(colname) for colname in F.col('colList')])
但不起作用。你知道吗
预期结果是:
+----+----+----+----+----+---------------+------+
|col1|col2|col3|col4|col5| colList|result|
+----+----+----+----+----+---------------+------+
| 1| 2| 0| 3| 4|['col1','col2']| [1,2]|
| 1| 2| 0| 3| 4|['col2','col3']| [2,0]|
| 1| 2| 0| 3| 4|['col1','col3']| [1,0]|
| 1| 2| 0| 3| 4|['col3','col4']| [0,3]|
| 1| 2| 0| 3| 4|['col2','col5']| [2,4]|
| 1| 2| 0| 3| 4|['col4','col5']| [3,4]|
+----+----+----+----+----+---------------+------+
下一步,我们将为数组colList中的各个列创建列。你知道吗
具有整数值的列列表-
现在,最重要的部分是,我们使用spark 2中的^{} 函数在列名和它各自的值之间创建一个映射。你知道吗
最后,应用此映射来获取存储在第一列和第二列中的列的值,并使用^{} 将它们放入一个数组中。你知道吗
相关问题 更多 >
编程相关推荐