2016-08-17 7 views
0

列名のリストがあるとします。 val expFields = List("f1", "f2")とdataFrame dfです.dfのexpFieldリストの列を分解したいとします。 。つまり、選択した数の列に "explode"を適用し、新しいdataFrameを返すことを意味します。私はdf.withColumn("f1", explode(col("f1"))).withColumn("f2", explode(col("f2")))のような列名を手動で指定したくありません。 expFieldsリストを使用してこれらの列を指定したいと思います。スパークでどうすればいいですか?spark:dataFrameの列のリストにexplodeを適用しますが、すべての列に適用しません

答えて

2

ただ、列のリストの上に折る:

expFields.foldLeft(df)((acc, c) => acc.withColumn(c, explode(col(c)))) 
関連する問題