Как отбросить несколько столбцов в spark с scala с некоторым регулярным выражением? - PullRequest
0 голосов
/ 17 марта 2020

Скажем, у меня есть некоторые имена столбцов, которые заканчиваются на '_undo', Теперь мне нужно удалить эти столбцы. Теперь вместо того, чтобы бросать по одному или сохранять их в списке перед тем, как бросить, могу ли я бросить на один go?

df.drop(//drop at one go for those columns ending with _undo)

Ответы [ 2 ]

1 голос
/ 17 марта 2020
val customDF = df.select(df.columns.filter(colName => checkname(colName)) .map(colName => new Column(colName)): _*)

, где checkname - простая пользовательская функция, которая возвращает colname, если совпадает, и null, если нет. Используйте свой шаблон для проверки внутри этой функции.

def checkname () : [return type] = {
   return [expr]
}
0 голосов
/ 17 марта 2020

А как насчет этого?

df.drop(df.columns.filter(c => "regexp".r.pattern.matcher(c).matches): _*)

или

df.drop(df.columns.filter(_.endsWith("_undo")): _*)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...