na.füllen Sie Funken DataFrame Scala
Bin ich mit Spark/Scala, und ich will füllen die Nullen in meinem DataFrame mit default-Werte basierend auf dem Typ der Spalten.
ich.e-Saite Spalten -> "string", " Numeric-Spalten -> 111 -, Boolean-Spalten -> False, etc.
Derzeit die DF.na.Funktionen-API bietet die na.füllen
fill(valueMap: Map[String, Any])
wie
df.na.fill(Map(
"A" -> "unknown",
"B" -> 1.0
))
Dies erfordert die Kenntnis der Spalte Namen und auch die Art der Spalten.
ODER
fill(value: String, cols: Seq[String])
Dies ist nur String/Double-Typen, auch nicht Boolean.
Ist es eine intelligente Art und Weise, dies zu tun?
- Möglicherweise müssen Sie
isInstanceOf
zu überprüfen die eingehenden Daten geben und ersetzen mit dem korrekten Wert. - Bitte ein reproduzierbares Beispiel.
- Danke für die Hilfe, die ich verwendet Pattern-Matching zu finden, der Typ, der nad eine Karte erstellt, und verwendet es
- Leider auch
Spark v2.2.1
unterstützt nur eine begrenzte Anzahl von Datentypen fürDataFrame.na.fill
Betrieb. Zitieren docs,"value must be of the following type: Int, Long, Float, Double, String, Boolean."
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf
dtypes: Array[(String, String)]
. Sie können die Ausgabe dieser Methode zum generieren einerMap
fürfill
, z.B.: