J'ai un cadre de données et je voudrais supprimer toutes les lignes avec une valeur NULL dans l'une des colonnes (chaîne). Je peux facilement obtenir le compte de cela:
df.filter(df.col_X.isNull()).count()
J'ai essayé de le laisser tomber en utilisant la commande suivante. Il s'exécute mais le décompte est toujours positif.
df.filter(df.col_X.isNull()).drop()
J'ai essayé différentes tentatives mais il renvoie l'erreur 'object is not callable'.
Les dataframes sont immuables. si vous appliquez simplement un filtre qui supprime les valeurs non nulles, vous créez un nouveau cadre de données sans les enregistrements contenant des valeurs nulles.
df = df.filter(df.col_X. isNotNull())
Utilisez soit drop
avec subset
:
df.na.drop(subset=["col_X"])
ou is_NotNull
df.filter(df.col_X.isNotNull())
une autre variante est:
from pyspark.sql.functions import col
df = df.where(col("columnName").isNotNull())
vous pouvez également ajouter une condition de chaîne vide
df = df.filter(df.col_X. isNotNull() | df.col_X != "")