Я написал следующее регулярное выражение:
val reg = ".+([A-Z_].+).(\\d{4})_(\\d{2})_(\\d{2})_(\\d{2})\\.orc".r
, которое должно анализировать следующие строки: "S3 // bucket // TS11_YREDED.2018_09_28_02.orc": метод анализа:
val dataExtraction: String => Map[String, String] = {
string: String => {
string match {
case reg(filename, year, month, day) =>
Map(FILE_NAME-> filename, YEAR -> year, MONTH -> month, DAY -> day)
case _ => Map(FILE_NAME-> filename,YEAR -> "", MONTH -> "", DAY -> "")
}
}
}
val YEAR = "YEAR"
val MONTH = "MONTH"
val DAY = "DAY"
val FILE_NAME = "FILE_NAME"
, но он не работает должным образом, предполагается, что он пропускает имя сегмента и синтаксический анализ имени файла и даты
, поэтому ожидаемый результат будет: Map (FILE_NAME-> TS11_YREDED, YEAR ->, MONTH-> 09, ДЕНЬ -> 28) Любая идея, как это исправить, пожалуйста?