Je veux utiliser le sténographique $ avec des applications d'étincelles écrites à Scala. Mais j'ai un grand nombre de colonnes que je voudrais faire référence à l'aide de variables. Dans le même temps, je veux utiliser la notation $ sworthand pour les chaînes qui détiennent le nom de la colonne.
df.select($"col1") // works val columnName = "col1" df.select($columnName) // gives error
3 Réponses :
Ce que vous voudrez peut-être, c'est.
val columnName = $"col1" df.select(columnName)
Vous pouvez également utiliser la fonction col code>.
df.select($"col1")
val columnName = col("col1")
df.select(columnName)
noone mentionné une chose très importante - Avez-vous importé qui devrait résoudre vos problèmes: -) p> $ code> est une conversion implicite
stringtoColumn code>. p>
Spark.implicits ._ code>, où
Spark code> est votre
Sparksession code> objet? P>
La seule solution de contournement que j'ai est d'utiliser df.Sélectionnez ($ "" + colonName)
Utilisez
col (columname) code>
Le
$ code> est une macro qui fonctionne uniquement avec des valeurs littérales.
@Lamanus qui finit par être
org.apache.spark.sql.column code> pas
org.apache.spark.sql.columnname code>
@ Luismiguelmejíasuárez merci, y a-t-il une macro qui fonctionne avec des variables?
@Ash A Macro B> Exécute à la compilation, il ne peut pas fonctionner avec des variables.