#hive #hiveql
Вопрос:
Я назначил проблему, чтобы сгруппировать проблему, возникшую с каждым пользователем идентификатора, по категориям. Столбец категории записывается в виде «Основная проблема@Детали 1@Детали 2». Я хотел бы знать, могу ли я использовать функцию substring_index() в sql-скрипте hive для извлечения основной проблемы и подробностей в конце с помощью следующего кода:
select
substring_index(category_out_line, "@",1) as MainProblem,
substring_index(category_out_line, "@",-1) as Detail2 `
from TableA;
Комментарии:
1. Вы действительно пробовали свой код?
2. Я голосую за закрытие невоспроизводимого, потому что у вас есть вопрос с допустимым кодом SQL, и вы просто спрашиваете, работает ли он.
Ответ №1:
Вы можете использовать substring_index, как в вашем вопросе, для извлечения первого и последнего элемента, но если вам нужно извлечь их все или второй, третий и т. Д., Лучше разделить:
split("MainProblem@Detail1@Detail2",'@')[0] --returns MainProblem
split("MainProblem@Detail1@Detail2",'@')[1] --returns Detail1
split("MainProblem@Detail1@Detail2",'@')[2] --returns Detail2