2016-06-13 2 views
0

Я использовал функцию split_part в Redshift и ищу эквивалент в Hive. Я хочу разобрать URL-адреса в следующем формате. Я просмотрел функцию parse_url и не думаю, что есть вариант для того, что мне нужно. Поэтому я думаю, что мне нужна строковая функция.Разбор строки в улье

так для нижеприведенных ссылок:

www.ibm.com 
www.fr.ibm.com 

Я хочу, чтобы все, после WWW. В документации есть функция substring_index, которая кажется мне необходимой, но она не работает над версией Hive, которую я использую (не уверен, как проверить версию, на которой я включен)

+0

Почему бы не просто взять все после 4-го символа или после первого появления периода? –

+0

Вы можете использовать regexp_replace, если вы всегда хотите заменить www – Abhi

+0

@GordonLinoff, иногда есть http, поэтому позиция символа не всегда надежна. – Moosa

ответ

1

Просто используйте REGEXP_EXTRACT() и возьмите все после первого .

SELECT url 
    , REGEXP_EXTRACT(url, '\\.(.*)') AS parsed_url 
FROM db.tbl