J'ai vu une solution ici mais quand j'ai essayé ça ne marche pas pour moi.
D'abord, j'importe un fichier cars.csv:
val df = sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "true")
.load("/usr/local/spark/cars.csv")
Qui ressemble à ceci:
+----+-----+-----+--------------------+-----+
|year| make|model| comment|blank|
+----+-----+-----+--------------------+-----+
|2012|Tesla| S| No comment| |
|1997| Ford| E350|Go get one now th...| |
|2015|Chevy| Volt| null| null|
Ensuite, je fais ceci:
df.na.fill("e",Seq("blank"))
Mais les valeurs nulles n'ont pas changé.
Quelqu'un peut-il m'aider ?
C'est fondamentalement très simple. Vous devrez créer un nouveau DataFrame
. J'utilise le DataFrame df
que vous avez défini précédemment.
val newDf = df.na.fill("e",Seq("blank"))
DataFrame
s sont structures immuables. Chaque fois que vous effectuez une transformation que vous devez stocker, vous devrez affecter le DataFrame
transformé à une nouvelle valeur.
vous pouvez obtenir la même chose en Java de cette façon
Dataset<Row> filteredData = dataset.na().fill(0);