val columnName=Seq("col1","col2",....."coln");
Existe-t-il un moyen d'effectuer l'opération dataframe.select pour obtenir dataframe contenant uniquement les noms de colonne spécifiés. Je sais que je peux faire dataframe.select("col1","col2"...)
mais le columnName
est généré au moment de l'exécution. Je pourrais faire dataframe.select()
à plusieurs reprises pour chaque nom de colonne dans une boucle. Y aura-t-il des frais généraux de performance ?. Y a-t-il un autre moyen plus simple d'accomplir cela?
val columnNames = Seq("col1","col2",....."coln")
// using the string column names:
val result = dataframe.select(columnNames.head, columnNames.tail: _*)
// or, equivalently, using Column objects:
val result = dataframe.select(columnNames.map(c => col(c)): _*)
Puisque dataFrame.select()
s'attend à une séquence de colonnes et que nous avons une séquence de chaînes, nous devons convertir notre séquence en un List
sur col
s et convertir cette liste en séquence. columnName.map(name => col(name)): _*
donne une séquence de colonnes à partir d'une séquence de chaînes, qui peut être passée en paramètre à select()
:
val columnName = Seq("col1", "col2")
val DFFiltered = DF.select(columnName.map(name => col(name)): _*)