Vous pouvez diference votre NaN valeurs en utilisant la fonction isnan, comme cet exemple
>>> df = spark.createDataFrame([(1.0, float('nan')), (float('nan'), 2.0)], ("a", "b"))
>>> df.select(isnan("a").alias("r1"), isnan(df.a).alias("r2")).collect()
[Row(r1=False, r2=False), Row(r1=True, r2=True)]
Le diference est dans le type de l'objet qui generetes la valeur. NaN (pas un nombre) est un moyen à l'ancienne de faire face à la "Aucune valeur pour un nombre", vous pouvez penser que vous avez tous les nombres (-1-2 ... 0,1,2 ...) et il y a le besoin d'avoir et de valeur supplémentaire, pour les cas d'erreurs (exemple, 1/0), je veux que 1/0 me donne un numéro, mais quel numéro? bien, comme il y a un nombre pour 1/0, ils créent une nouvelle valeur appelée NaN, qui est aussi de type Number.
Aucune n'est utilisée pour le vide, l'absence d'un élément, est encore plus abstraite, car à l'intérieur du type de nombre, vous avez, outre la valeur de NaN, la valeur None. La valeur None est présent dans tous les ensembles de valeurs de tous les types
J'ai reçu les réponses complètes de @Shadio. Merci! –
Voilà un exemple de réponse parfaite, juste sympa :) –
Merci, gentil d'être utile. :) – Shaido