Функция Impala CONV не всегда преобразует BASE-16 в BASE-2 - PullRequest
0 голосов
/ 10 мая 2018

У меня есть шестнадцатеричные строки, которые мне нужно преобразовать в двоичные строки Base-2, но я не могу заставить Impala работать последовательно.

Например,

Я ожидал бы следующее утверждение:

select conv('0020008000',16,2) union
select conv('000006040A',16,2);

Для возврата:

0000 0000 0010 0000 0000 0000 1000 0000 0000 0000
0000 0000 0000 0000 0000 0110 0000 0100 0000 1010

Однако вместо этого он возвращает:

0000 0000 0010 0000 0000 0000 1000 0000 0000 0000
                          1100 0000 1000 0001 010

1-е значение HEX преобразуется правильно, но во 2-й пропущены первые 21 цифры(все нули).

Может кто-нибудь объяснить, почему это происходит и как я могу исправить это поведение?

1 Ответ

0 голосов
/ 23 мая 2018

Импала / Улей рассматривает несколько ведущих нулей как избыточные и обрезает их. Я не уверен, можно ли включить или выключить это поведение. Я работал над этим, используя функцию lpad.

...