Что является заменой REGEXP_INSTR (функция Redshift) в SparkSQL? - PullRequest
0 голосов
/ 25 октября 2019

REGEXP_INSTR Функция: выполняет поиск в строке шаблона регулярного выражения и возвращает целое число, которое указывает начальную или конечную позиции соответствующей подстроки. Если совпадений не найдено, функция возвращает 0.

Пример:

    select email, regexp_instr(email,'@[^.]*') 
    from users 
    limit 5; 

ожидаемый результат:

email                                 | regexp_instr


Cum@accumsan.com                      |            4

lorem.ipsum@Vestibulumante.com        |           12

non.justo.Proin@ametconsectetuer.edu  |           16

1 Ответ

0 голосов
/ 25 октября 2019

Вы можете использовать locate функцию

scala> df.show(true)
+--------------------+
|               email|
+--------------------+
|    Cum@accumsan.com|
|lorem.ipsum@Vesti...|
|non.justo.Proin@a...|
+--------------------+


scala> df.select(locate("@",'email)).show()
+-------------------+
|locate(@, email, 1)|
+-------------------+
|                  4|
|                 12|
|                 16|
+-------------------+
...