假设我有一个列名列表
val expFields = List("f1", "f2")
和dataFrame df,我想爆炸df的expField列表中的列。这意味着我想将“爆炸”应用于选定数量的列并返回一个新的dataFrame。我不想手动指定列名如df.withColumn("f1", explode(col("f1"))).withColumn("f2", explode(col("f2")))
。我想使用expFields列表来指定这些列。我如何在Spark中做到这一点?
答案 0 :(得分:2)
只需折叠列列表:
expFields.foldLeft(df)((acc, c) => acc.withColumn(c, explode(col(c))))