Quelle est la différence entre exploser de la fonction et de l'opérateur?
Quelle est la différence entre explode
fonction et explode
opérateur?
Vous devez vous connecter pour publier un commentaire.
Quelle est la différence entre explode
fonction et explode
opérateur?
Vous devez vous connecter pour publier un commentaire.
spark.sql.functions.explode
explode
fonction crée une nouvelle ligne pour chaque élément dans le tableau donné ou d'une carte de colonne (dans un DataFrame).explode
crée un Colonne.Voir fonctions objet et l'exemple de la Comment se détendre tableau dans DataFrame (à partir de JSON)?
Dataset<Row> explode
/flatMap
opérateur (méthode)explode
opérateur est presque laexplode
fonction.De la scaladoc:
Veuillez noter que, pour citer à nouveau le scaladoc):
Voir Dataset API et l'exemple de la Comment diviser multi-valeur de la colonne pour séparer les lignes à l'aide de Dataset typé?
Malgré
explode
être déprécié (que l'on pourrait alors traduire la question principale à la différence entreexplode
fonction etflatMap
opérateur), la différence est que le premier est une fonction alors que le second est un opérateur. Ils ont des signatures différentes, mais peuvent donner les mêmes résultats. Cela conduit souvent à des discussions, ce qui est la meilleure et généralement se résume à la préférence personnelle ou de style de codage.On pourrait aussi dire que
flatMap
(c'est à direexplode
opérateur) est plus Scala-ish compte tenu de la façon ubiquitaireflatMap
est en Scala de programmation (principalement caché derrière pour-de la compréhension).