Я пытаюсь отфильтровать столбец в фрейме данных, который соответствует шаблону регулярного выражения, указанному в другом столбце
df = sqlContext.createDataFrame([('what is the movie that features Tom Cruise','actor_movies','(movie|film).*(feature)|(in|on).*(movie|film)'),
('what is the movie that features Tom Cruise','artist_song','(who|what).*(sing|sang|perform)'),
('who is the singer for hotel califonia?','artist_song','(who|what).*(sing|sang|perform)')],
['query','question_type','regex_patt'])
+--------------------+-------------+----------------------------------------- -+
| query |question_type |regex_patt|
+--------------------+-------------+----------------------------------------------+
|what movie features Tom Cruise | actor_movies | (movie|film).*(feature)|(in|on).*(movie|film)
|what movie features Tom Cruise | artist_song | (who|what).*(sing|sang|perform)
|who is the singer for hotel califonia | artist_song | (who|what).*(sing|sang|perform) |
+--------------------+-------------+------------------------------------------------+
Я хочу обрезать фрейм данных таким образом, чтобы сохранить только те строки, запрос которых соответствует столбцу regex_pattern value.
Окончательный результат должен выглядеть следующим образом
+--------------------+-------------+----------------------------------------- -+
| query |question_type |regex_patt|
+--------------------+-------------+----------------------------------------------+
|what movie features Tom Cruise | actor_movies | (movie|film).*(feature)|(in|on).*(movie|film)|
|who is the singer for hotel califonia | artist_song | (who|what).*(sing|sang|perform)
+--------------------+-------------+------------------------------------------------+
Я думал о
df.filter(column('query').rlike('regex_patt'))
Но rlike принимает только строки регулярных выражений.
Теперь вопрос в том, как отфильтровать столбец "query"
на основе значения регулярного выражения столбца "regex_patt"
?