Spark fillNa ne remplace pas la valeur null
J'ai le texte suivant dataset et sa contenir des valeurs null, besoin de remplacer la valeur null à l'aide de fillna spark.
DataFrame:
df = spark.read.format("com.databricks.spark.csv").option("header","true").load("/sample.csv")
>>> df.printSchema();
root
|-- Age: string (nullable = true)
|-- Height: string (nullable = true)
|-- Name: string (nullable = true)
>>> df.show()
+---+------+-----+
|Age|Height| Name|
+---+------+-----+
| 10| 80|Alice|
| 5| null| Bob|
| 50| null| Tom|
| 50| null| null|
+---+------+-----+
>>> df.na.fill(10).show()
quand je vais vous donner les na les valeurs qu'il ne marche pas changé de la même dataframe apparut de nouveau.
+---+------+-----+
|Age|Height| Name|
+---+------+-----+
| 10| 80|Alice|
| 5| null| Bob|
| 50| null| Tom|
| 50| null| null|
+---+------+-----+
essayé de créer un nouveau dataframe et de stocker le remplissage des valeurs dans dataframe mais le résultat en montrant comme inchangée.
>>> df2 = df.na.fill(10)
comment remplacer les valeurs null? merci de me donner les moyens possibles en utilisant remplir na.
Merci à l'Avance.
Est t-il des règles pour le remplacement ? e.g Est le remplacement des valeurs null à la Hauteur de la colonne le Nom de la colonne ?
Dans mon cas, la valeur null n'est pas remplacée, si la règle s'applique ou ailleurs n'est pas spécifié à la règle. la base opération de remplissage ne fonctionne pas correctement. vérifié avec les différents jeux de données.
Dans mon cas, la valeur null n'est pas remplacée, si la règle s'applique ou ailleurs n'est pas spécifié à la règle. la base opération de remplissage ne fonctionne pas correctement. vérifié avec les différents jeux de données.
OriginalL'auteur Churchill vins | 2016-11-03
Vous devez vous connecter pour publier un commentaire.
Il semble que votre
Height
colonne n'est pas numérique. Lorsque vous appelezdf.na.fill(10)
étincelle remplace uniquement les valeurs null avec la colonne qui correspondent à type de10
, qui sont les colonnes numériques.Si
Height
colonne doivent être de chaîne, vous pouvez essayer dedf.na.fill('10').show()
, sinon casting pourIntegerType()
est nécessaire.df.na.fill('10').show()
Je vais essayé avec ce code mais il ne fonctionne pas correctement. Comment puis-je casting pourint
des exemples?ici vous pouvez trouver de la documentation pour la coulée dataframe colonnes: spark.apache.org/docs/latest/api/python/... - le
'int'
type ouIntegerType()
est de type valide pour stocker des nombres.merci pour l'info, cela fonctionne. maintenant j'ai un doute puis-je remplir directement la chaîne comme
df.na.fill("sample")
comme ça, au lieu de donner conditiondf.na.fill({'age': 50, 'name': 'sample'})
.Oui, bien sûr. Jetez un oeil à la documentation.
Je vais vérifié avec la documentation mais je n'ai rien trouvé pour mon cas. au lieu de conditions, il est de toute les façons possibles?
OriginalL'auteur Mariusz
Vous pouvez également fournir une valeur par défaut et chaque colonne, si vous préférez.
OriginalL'auteur beljul