Mit Spark 1.6.2 und versuchen zu finden, ob ein Feld eine leere Zeichenfolge oder einen Datumswert enthält.Warum "select unix_timestamp ('') ist null" gibt false zurück, wenn "select unix_timestamp ('')" null zurückgibt?
Spark documentation erklärt, dass, wenn unix_timestamp() Funktion null zurück, wenn es so unten ausfällt ist das erwartete Verhalten:
sqlContext.sql("select unix_timestamp('')").show
+----+
| _c0|
+----+
|null|
+----+
Aber wenn ich versuche, es zu überprüfen mit "null" es gibt false zurück:
sqlContext.sql("select unix_timestamp('') is null").show
+-----+
| _c0|
+-----+
|false|
+-----+
Gleiche Abfrage liefert true in Hive:
hive> select unix_timestamp('') is null;
OK
true
Hier ist null Überprüfung auf null aus Gründen der Vollständigkeit halber:
sqlContext.sql("select null is null").show
+----+
| _c0|
+----+
|true|
+----+