将多列添加到数据框scala
我有一个条件,我必须添加 100 列(到现有的 DF)
现有的DF是这样的
c1 c2 c3 c4
应该在 100 列之后添加,c2以便输出看起来像这样
c1 c2 c5 c6 c7 c8 c9 ...... c100 c3 c4
我使用.withColumn来添加列并使用它们按顺序排列.select
有一个更好的方法吗?
TIA
回答
使用选择。对于withColumn很多列,该方法的效率会降低。
val midCols: Seq[Column] = ...
df.select(Seq(c1, c2) ++ midCols ++ Seq(c3, c4):_*)
这样,数据集的新版本是在单个转换中创建的。
对于阅读本文的其他人来说,很好的信息是您可以使用该模式来构造和添加复杂的列表达式。
val colsToAdd: Seq[Column] = Seq('a * 2 as "next_a", split('b) as "b_arr")
鉴于命名/别名已经在定义中,当您选择它们时,它们将具有预期的名称。这样你就不必在之后处理重命名。