Убедитесь, что столбец SPARK Dataframe соответствует регулярному выражению для всех случаев использования Scala - PullRequest
0 голосов
/ 25 сентября 2018

Я использую Scala.

У меня есть фрейм данных со столбцом date, который выглядит так:

|            date             |
|2017-09-24T11:05:52.647+02:00|
|2018-09-24T11:05:52.647+02:00|
|2018-10-24T11:05:52.647+02:00|

У меня есть регулярное выражение для проверки формата даты:

pattern = new regex(([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|    [12]\d|3[01])T\d{2}:\d{2}:\d{2}.\d{3}\+\d{2}:\d{2}))

Я хочу проверить, соответствует ли каждая строка в кадре данных регулярному выражению, если да, вернуть true, а если нет, вернуть false.Мне нужно вернуть только true или false, а не список.

Любая помощь приветствуется, и большое спасибо за вашу помощь.

1 Ответ

0 голосов
/ 25 сентября 2018

Это должно сработать - но, перевернув его, найдите первое несоответствие:

import scala.util.Try
val result = Try(Option(df.filter($"cityid" rlike "[^0-9]").first)).toOption.flatten
if (result.isEmpty) { println("Empty")}

Я использую DF в качестве результата, и вы можете просто проверить, пустой или нет.

Пожалуйстаадаптировать к вашей собственной ситуации.например, не пустое, ваше собственное регулярное выражение.

Без Try и т.п.Ничего не возвращается, если пусто, и вы можете сделать проверку пустым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...