Функция Hive split()
принимает два параметра (string, regex pattern)
и разделяет string
согласно regex
. Разделения будут возвращены в массиве.
К каждому разбиению можно получить доступ через индекс массива. Вам нужно 5, которые доступны по индексу 0.
Следовательно, запрос должен быть:
Select
floor(split('5/0/3/0/4/4/143504', '[/]')[0]) as draws,
floor(split('5/0/3/0/4/4/143504', '[/]')[1]) as losses;
--Output:
draws losses
5 0
Просто, чтобы расширить этот пример, это все разбиения:
Select
floor(split('5/0/3/0/4/4/143504', '[/]')[0]) as e0,
floor(split('5/0/3/0/4/4/143504', '[/]')[1]) as e1,
floor(split('5/0/3/0/4/4/143504', '[/]')[2]) as e2,
floor(split('5/0/3/0/4/4/143504', '[/]')[3]) as e3,
floor(split('5/0/3/0/4/4/143504', '[/]')[4]) as e4,
floor(split('5/0/3/0/4/4/143504', '[/]')[5]) as e5,
floor(split('5/0/3/0/4/4/143504', '[/]')[6]) as e6;
--Output
e0 e1 e2 e3 e4 e5 e6
5 0 3 0 4 4 143504