-1
votes

Quel est l'avantage d'utiliser $ "col" sur "col" dans des cadres de données Spark

Disons que j'ai un df créé comme suit xxx

quel est l'avantage de la convertir en une colonne à l'aide de post.s.select ("id") sur post.s.Sélectionnez ($ "ID")


0 commentaires

3 Réponses :


2
votes

Il n'y a pas d'avantage particulier, c'est une conversion automatique de toute façon. Mais toutes les méthodes de SparkSQL n'effectuent pas cette conversion, donc parfois, vous devez parfois mettre l'objet de colonne avec le $.


2 commentaires

Y a-t-il un avantage de les convertir en type de colonne? Ou dans quels scénarios devrions-nous convertir?


Comme je l'ai dit, lorsque l'API accepte à la fois l'objet de la colonne et le nom de la colonne, tel que SELECT (), il n'y a aucun avantage. Lorsque l'API n'accepte pas le nom de la colonne, vous devez utiliser l'objet de la colonne pour éviter une erreur de compilation.



4
votes

df.select fonctionne directement sur la colonne lorsque $ "col" crée une instance de colonne. Vous pouvez également créer des instances de colonnes à l'aide de la fonction col . Maintenant, les colonnes peuvent être composées pour former des expressions complexes qui peuvent ensuite être transmises à l'une des fonctions DF.

Vous pouvez également trouver des exemples et des utilisations supplémentaires sur Scaladoc of Colonne.

ref - https://spark.apache.org/docs/2.2.0/api/scala/index.html#org.apache.spark.sql.column


0 commentaires

1
votes

Il n'y a pas beaucoup de différence, mais certaines fonctionnalités peuvent être utilisées uniquement en utilisant $ avec le nom de la colonne.

Exemple: lorsque nous voulons trier la valeur dans cette colonne, sans utiliser $ avant le nom de la colonne, il ne fonctionnera pas.

window.orderby ("id" .desc)

Mais si vous utilisez $ avant le nom de la colonne, cela fonctionne.

fenêtre.orderby ($ "id" .desc)


0 commentaires