我有一个条件,我必须添加100列(到现有的DF)
现有的DF如下所示
c1 c2 c3 c4应该将100列添加到c2之后,以便输出如下所示
c1 c2 c5 c6 c7 c8 c9 ...... c100 c3 c4我使用.select使用.withColumn添加列并按顺序排列它们
有没有更好的方法来做这件事?
提亚
发布于 2021-07-27 18:41:41
使用select。由于列太多,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")鉴于命名/别名已经包含在定义中,当您选择它们时,它们将具有所需的名称。这样你就不必处理重命名问题了。
https://stackoverflow.com/questions/68549945
复制相似问题