Я работаю над обнаружением информации PI / SI в данном наборе данных (искра). У меня есть набор правил (в формате csv), как показано ниже
Rule_No,Target,Pattern,Fuzzy_Match,EPDR,Category,Active
1,Name,name,true,PI - Name,General/ID,true
1,Name,identity,true,PI - Name,General/ID,true
1,Content,Smith,true,PI - Name,General/ID,true
1,Content,Jones,true,PI - Name,General/ID,true
1,Content,Williams,true,PI - Name,General/ID,true
5,Name,Gender,true,PI - Gender,General/ID,true
5,Content,M,false,PI - Gender,General/ID,true
5,Content,F,false,PI - Gender,General/ID,true
5,Content,Male,false,PI - Gender,General/ID,true
5,Content,Female,false,PI - Gender,General/ID,true
Что я пытаюсь сделать, это перебирать столбцы набора данных и применять каждое из этих правил, чтобы проверить, имеет ли конкретный столбец PII или нет. Так, скажем, если у меня есть столбец с именем name
, и данное правило говорит о сканировании содержимого этого столбца с шаблоном, скажем Smith
. Если я найду совпадение, я буду знать, что этот столбец является столбцом PI, а затем перейдет к следующему столбцу и буду применять каждое правило, пока не найду совпадение. Я использую вложенный для понимания, чтобы перебрать список столбцов и список правил. Что я хочу, так это, когда я нахожу совпадение, я хочу перейти к следующему столбцу вместо применения оставшихся правил. Я написал код, подобный этому
for {
c <- ds.columns.toList
rule <- rules if rule.active && checkPII(ds, c, rule.target, rule.pattern, rule.fuzzyMatch)
} yield {
<return PII information>
}
, но он будет применять каждое правило к одному и тому же столбцу, даже если оно соответствует. Как перейти к следующему столбцу вместо того, чтобы продолжать применять остальные правила?