Я использую библиотеку amazon deequ и пытаюсь передать правила из таблицы csv или mysql. В моем CSV-файле будет столбец со значениями, подобными приведенным ниже
rules_column
-------------------------------------------------------------------------
.hasCompleteness("column1", _ >= 0.86, Some("It should be above 0.86!"))
.hasDataType("colm2", ConstrainableDataTypesIntegral)
.isComplete("column3")
.isContainedIn("column1", Array("R", "M", "A", "L"))
.isNonNegative("col7")
Я пытаюсь найти способ перевести этот строковый столбец непосредственно в ограничения. Вот псевдокод того, что я пытаюсь сделать.
var check = Check(CheckLevel.Error, "Data Validation Check")
for (constrain <- rules_column){
check = check + constrain } // constrain is a string here
Таким образом ... если в таблице есть новое ограничение, содержащее в себе Email, мне не нужно возвращаться к своему коду и отдельно пишите логи синтаксического анализа c, чтобы перевести строку содержит адрес электронной почты в ограничение содержит адрес электронной почты.