在多列上使用df.withColumn()

时间:2018-04-23 13:04:07

标签: python python-2.7 pyspark pyspark-sql spss-modeler

我正在使用python和pyspark来扩展SPSS Modeler。

我想操纵~5000列,因此使用以下结构:

image     id    name    xMin    xMax    yMin    yMax
1-0.png   1             4770    4802    141     156
1-0.png   2             4810    4895    141     157

这很慢。是否有更有效的方法为所有目标列执行此操作?

re包含要使用的列名列表,for target in targets: inputData = inputData.withColumn(target+appendString, function(target)) 是一个占位符,我可以使用不同的列来添加和分割。

如果你能帮助我,我会很高兴:)

pandayo

1 个答案:

答案 0 :(得分:1)

试试这个:

inputData.select(
    '*', 
    *(function(target).alias(target+appendString) for target in targets)
)