Hadoop SQL - Импала и вычисляемое поле - PullRequest
0 голосов
/ 05 июля 2018

Я очень новичок в Hadoop и пытаюсь использовать «вычисляемое» поле, как в SQL:

SELECT "one" as test, 
    CASE WHEN calculated test = "one" then "This works"
    else "Nope" 
    end as checker

Но, похоже, это приводит к ошибке:

AnalysisException: синтаксическая ошибка в строке 1: ... est, CASE WHEN рассчитанный тест = "один", затем "эта работа ... ^ Обнаружено: IDENTIFIER Ожидаемое: И, МЕЖДУ, DIV, ILIKE, IN, IREGEXP, IS, LIKE, NOT, OR, REGEXP, RLIKE, ТО ВЫЗЫВАЕТСЯ: Исключением: синтаксическая ошибка

Разве нельзя использовать "вычисленное" поле в Hadoop? Если так, что я делаю не так? Извиняюсь, если я упускаю что-то очевидное, опять же, новое для Hadoop

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Приведенный ниже запрос может работать так, как вы хотите в улье / импале

select 
    case when test="one" then "this works"
    else "nope" end as checker 
    from 
    (select "one" as test) a;
0 голосов
/ 05 июля 2018

Это не так. calculated не является резервным словом для Impala SQL.

Вы, вероятно, должны использовать if или case.

Вот несколько примеров из статьи Условные функции Impala: IF, CASE, COALESCE, DECODE, NVL, ZEROIFNULL :

select if(1=1,'TRUE','FALSE') as IF_TEST;

...

select case x when 1 then 'one'
 when 2 then 'two' 
 when 0 then 'zero' 
 else 'out of range' 
 end
 from t1;

Ссылка:

...