Spark 1.6.2を使用して、フィールドに空の文字列または日付値が含まれているかどうかを調べようとしています。select unix_timestamp( '')がnullを返すと、select unix_timestamp( '')がnullになるのはなぜfalseを返しますか?
Spark documentationは、それが動作が期待されているので、下に失敗した場合であればUNIX_TIMESTAMP()関数はnullを返していることを説明します。
sqlContext.sql("select unix_timestamp('')").show
+----+
| _c0|
+----+
|null|
+----+
しかし、私はそれはfalseを返します「nullである」とそれをチェックしようとすると:
sqlContext.sql("select unix_timestamp('') is null").show
+-----+
| _c0|
+-----+
|false|
+-----+
同じクエリは、ハイブにtrueを返します:
hive> select unix_timestamp('') is null;
OK
true
ここでは完全を期すためにはnullにチェックをnullである:
sqlContext.sql("select null is null").show
+----+
| _c0|
+----+
|true|
+----+