Доброе утро. Я ищу в Hive эквивалент REGEXP_SUBSTR, который я использую в других базах данных, таких как Teradata.
Мой конкретный случай: у меня есть поле со строкой. Это выглядит примерно так:
Row1: ABC ACC ADF AFA BAC CAF
Row2: ACC BAC CAG HOL HRR NOM
Row3: ACC ARR BBA CAF LOM NOM
В моем предложении WHERE я использую RLIKE для поиска определенных частей строки, например:
ГДЕ mystring RLIKE 'BAC|BBA'
Я хотел бы также вернуть ту часть, которая соответствует столбцу. Таким образом, результатом будет:
Row1: BAC
Row2: BAC
Row3: BBA
В других базах данных я бы сделал это, поместив это в инструкцию SELECT: REGEXP_SUBSTR(mystring,'(BAC|BBA)\S*'). Есть ли аналогичная функция в Hive? Если да, то каков синтаксис?
Я просмотрел несколько разных функций Hive, но они, кажется, ожидают, что строка будет каждый раз в одном и том же месте, а здесь это не так. Но я, по общему признанию, мог неправильно понимать синтаксис.
regexp_extract()
в Hive. - person Gordon Linoff   schedule 24.03.2020