Конечно, вот улучшенная формулировка вашего вопроса: Как составить регулярное выражение для извлечения определенного номера из поля таблицы, содержащего много текста? Например, у нас есть следующий текст: <br/> текс :/D/сам номер который нужен\r\n: текст <br/> Нам нужно написать регулярное выражение, которое найдет определенный символ или группу символов, захватит всё, что идет после этого символа, и прекратит захват при встрече следующего символа.
Для данной задачи можно использовать следующее регулярное выражение: ```regex :([\s\S]*?)\\r\n ``` Это выражение найдет символ ":", захватит всю последующую текстовую информацию (включая перенос строки), и прекратит захват при обнаружении символов "\\r\n".
Сами пробовали? Что не получилось?
https://regex101.com
В Apache Spark обычно нет таблиц. Дата-инженер оперирует абстракциями
- RDD
- DataFrame
- DataSet (почти тоже самое что датафрейм)
Когда у тебя в одной руке датафрейм - ты можешь уже к нему применить фильтр с регуляркой тип
df.filter(col("name").rlike("(?i)^*rose$")).show()
Если сильно хочется - то поверх датафрейма создается View через
df.createOrReplace......View("view_name")
И с ним работают.
spark.sql("SELECT .... WHERE col RLIKE ..... ").show()
Но это уже такой себе овер-инжинеринг. И если можно решить задачу на уровне датафреймов
то обычно так и решают. SQL и прочее подключают когда есть JOINS или какие-то особые условия
(catalyst optimizer нужен).