что случилось, когда сравниваешь двойной со строкой в ​​улье - PullRequest
0 голосов
/ 19 июня 2019

Я пишу скрипт улья, чтобы провести некоторый анализ, и результат неожиданный. После нескольких попыток я обнаружил, что причина в сравнении между двойным и "". Для сравнения я написал следующие сценарии:

select get_json_object(expparams, '$.CTR') as pv_exp_id,
               cast(poiCtr as double) / 1000000.0 as poiCtr,
               pvid,
               dt
          from  pv_log LATERAL VIEW explode(split(ctr, '\073'))r as poiCtr
         where dt>=20190612
           and dt<=20190612
           and poiCtr <>""    
           limit 100
select * from (
select get_json_object(expparams, '$.CTR') as pv_exp_id,
               cast(poiCtr as double) / 1000000.0 as poiCtr,
               pvid,
               dt
          from pv_log LATERAL VIEW explode(split(ctr, '\073'))r as poiCtr
         where dt>=20190612
           and dt<=20190612         
           and poiCtr <> "" 
           limit 100
  ) a where poiCtr <> ""

первый скрипт выводит записи как положено. но второй сценарий ничего не дает.

так почему же он фильтрует все записи, когда я сравниваю poiCtr с "" в слое out? Я искал в Интернете и нашел мало полезного.

Спасибо !!

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