Ich habe eine CSV-Datei und ich verarbeite seine Daten.Wie behandelt man die Null/Leer-Werte auf einem Datenrahmen Spark/Scala
Ich arbeite mit Datenrahmen, und ich berechne Mittelwert, Minimum, Maximum, Mittelwert, Summe jeder Spalte basierend auf einigen Bedingungen. Die Daten jeder Spalte können leer oder null sein.
Ich habe festgestellt, dass in einigen Fällen habe ich als max, oder summe einen Nullwert anstelle einer Zahl. Oder ich habe in max() eine Zahl, die weniger ist als die Ausgabe, die das min() zurückgibt.
Ich möchte nicht die Null/leere Werte durch andere ersetzen. Das einzige, was ich getan habe, ist diese 2 Optionen in CSV zu verwenden:
.option("nullValue", "null")
.option("treatEmptyValuesAsNulls", "true")
Gibt es eine Möglichkeit, dieses Problem zu umgehen? Sind alle schon einmal mit diesem Problem konfrontiert worden? Ist es ein Problem von Datentypen?
Ich laufe etwas wie folgt aus:
data.agg(mean("col_name"), stddev("col_name"),count("col_name"),
min("col_name"), max("col_name"))
Ansonsten kann ich der Ansicht, dass es sich um ein Problem in meinem Code.
Diese Aggregationsfunktionen ignorieren Nullwerte, daher sollte das Vorhandensein von Nullwerten kein Problem sein. Du hast gesagt, dass du sie aufgrund einiger Bedingungen berechnet hast, vielleicht ist das Problem da. Stellen Sie außerdem sicher, dass Sie diese Funktionen auf numerische Spalten anwenden. Sie können '.cast (" double ")' bei Bedarf verwenden. –