почему isnull () и .isNull в Pyspark 1.6 дают разные результаты? - PullRequest
0 голосов
/ 17 января 2020

Я использую Spark 1.6 с Python 2.7 и имею 2 простых кадра данных Pyspark-

>>> df.show()
+-----------+-------------------+
|cust_agt_id|          source_id|
+-----------+-------------------+
|       abcd|                  1|
|        abc|                  1|
|        bcd|                  1|
+-----------+-------------------+
>>> cache.show()
+-----------+---------+-------+
|cust_agt_id|source_id|inCache|
+-----------+---------+-------+
|      abcd1|        1|      1|
|        abc|        1|      1|
|       bcd1|        1|      1|
+-----------+---------+-------+

Я просто соединяю эти 2 кадра данных (левое соединение)

>>> joinColumns=['cust_agt_id','source_id']

>>> df.join(cache,joinColumns,"left").filter(isnull(cache['inCache'])).show()
+-----------+---------+-------+
|cust_agt_id|source_id|inCache|
+-----------+---------+-------+
+-----------+---------+-------+

>>> df.join(cache,joinColumns,"left").filter(col("inCache").isNull()).show()
+-----------+---------+-------+
|cust_agt_id|source_id|inCache|
+-----------+---------+-------+
|       abcd|        1|   null|
|        bcd|        1|   null|
+-----------+---------+-------+

Почему эти два нулевых условия проверки ведут себя по-разному. Я получаю правильный результат с помощью второго фильтра "(col (" inCache "). IsNull ())"

Спасибо

Sid

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...