Как преобразовать значения в строке в шестнадцатеричный в Hive - PullRequest
1 голос
/ 12 февраля 2020

Я хочу преобразовать строку в шестнадцатеричное, например: есть строка как '[1,2,3,4,5]', я хочу преобразовать это в шестнадцатеричное, и вывод должен быть в виде строки следующим образом: '[31,32,33,35,35]' с использованием hiveQL

1 Ответ

0 голосов
/ 12 февраля 2020

Снять начальные и конечные квадратные скобки, разделить на массив, разнести, преобразовать в HEX, затем снова собрать массив и, наконец, объединить его:

with data as (
select '[1,2,3,4,5]' str
)

select '['||concat_ws(',',collect_list(hex(e.a)))||']' as result
  from data d 
       lateral view explode(split(regexp_replace(str,'\\[|\\]',''),',')) e as a

результат

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