Einschließlich der null-Werte in einen Apache-Spark-Beitreten
Möchte ich um null-Werte in einen Apache Spark beitreten. Funken sind nicht enthalten Zeilen mit null-standardmäßig.
Hier ist die Standard-Funke-Verhalten.
val numbersDf = Seq(
("123"),
("456"),
(null),
("")
).toDF("numbers")
val lettersDf = Seq(
("123", "abc"),
("456", "def"),
(null, "zzz"),
("", "hhh")
).toDF("numbers", "letters")
val joinedDf = numbersDf.join(lettersDf, Seq("numbers"))
Hier ist die Ausgabe von joinedDf.show()
:
+-------+-------+
|numbers|letters|
+-------+-------+
| 123| abc|
| 456| def|
| | hhh|
+-------+-------+
Dies ist die Ausgabe, die ich möchte:
+-------+-------+
|numbers|letters|
+-------+-------+
| 123| abc|
| 456| def|
| | hhh|
| null| zzz|
+-------+-------+
Du musst angemeldet sein, um einen Kommentar abzugeben.
Spark bietet eine Besondere
NULL
sicher Gleichheits-operator:Vorsichtig sein, es nicht zu verwenden mit Spark 1.5 oder früher. Vor Spark 1.6 ist es erforderlich, ein Kartesisches Produkt (SPARK-11111 - Fast-null-safe join).
In Funke 2.3.0 oder später können Sie
Column.eqNullSafe
im PySpark:sowie
%<=>%
im SparkR:Mit SQL (Funke 2.2.0+) können Sie
IS NOT DISTINCT FROM
:Dies kann verwendet werden, mit
DataFrame
- API:<=>
Betreiber. Wenn Sie ein mehrere Spalte join-Bedingungen können verkettet werden mit der&&
Betreiber.Versuchen Sie die folgende Methode, um die null-Zeilen, um das Ergebnis der JOIN-operator: