Я пишу скрипт улья, чтобы провести некоторый анализ, и результат неожиданный. После нескольких попыток я обнаружил, что причина в сравнении между двойным и ""
. Для сравнения я написал следующие сценарии:
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? Я искал в Интернете и нашел мало полезного.
Спасибо !!