Spark Union vs在Spark中使用lit添加列



这是一个与火花相关的问题。我必须将静态数据添加到各种类型的记录中,每种类型的记录都被处理为不同的数据帧(例如df1, df2,…df6)我打算添加的静态数据必须与所有6个数据帧重复。

更高效的方法是什么?

  1. 对于每一个6个数据帧,使用:
.witColumn("testA", lit("somethingA"))
.witColumn("testB", lit("somethingB"))
.witColumn("testC", lit("somethingC"))

  1. 创建一个新的DF,说staticDF有所有的列,我打算追加到每6个数据帧和使用联合?

还有其他我没有考虑过的选择吗?

第一种方法是正确的。第二种方法不起作用,因为union将行添加到数据框架中,而不是列。

另一种方法是使用select同时选择所有新列:

df2 = df.select(
'*',
lit('somethingA').alias('testA'),
lit('somethingB').alias('testB'),
lit('somethingC').alias('testC')
)

最新更新