regexp_extract в scala фрейме данных дает ошибку - PullRequest
1 голос
/ 05 мая 2020

Я пытаюсь преобразовать приведенный ниже оператор Hive SQL в фрейм данных Spark и получаю сообщение об ошибке.

trim(regexp_extract(message_comment_txt, '(^.*paid\\s?\\$?)(.*?)(\\s?toward.*)', 2))

Пример данных: message_comment_txt = "DAY READER, paid 12.76 toward the cost"

Мне нужно получить вывод как 12.76

Пожалуйста, помогите мне предоставить эквивалентную инструкцию Spark Dataframe.

1 Ответ

2 голосов
/ 05 мая 2020

Попробуйте с paid\\s+(.*?)\\s+toward regex.

df.withColumn("extract",regexp_extract(col("message_comment_txt"),"paid\\s+(.*?)\\s+toward",1)).show(false)
//for case insensitive
df.withColumn("extract",regexp_extract(col("message_comment_txt"),"(?i)paid\\s+(.*?)\\s+(?i)toward",1)).show(false)
//+--------------------------------------+-------+
//|message_comment_txt                   |extract|
//+--------------------------------------+-------+
//|DAY READER, paid 12.76 toward the cost|12.76  |
//+--------------------------------------+-------+
...