Pyspark path regex отрицательный просмотр вперед

У меня есть паркетные каталоги с таким названием:

parquetNames = [NAME1,NAME1_MS,NAME2, NAME2_MQ]

Я хочу загрузить только паркет в NAME1 и NAME2, но у меня проблемы с отрицательным просмотром вперед и чередованием. Если я сделаю:

s3BaseDir+'NAME*'

затем, как и ожидалось, загружаются все паркетные доски. Из здесь и здесь Я мог бы сделать отрицательный просмотр вперед с таким чередованием, чтобы избежать полных подстрок "_MS" или "_MQ":

s3BaseDir+'NAME*(?!{_MS,_MQ})'

Но я получаю

AnalysisException: 'Path does not exist'.

Кажется, он буквально воспринимает более сложное регулярное выражение.

Можно ли в pyspark spark.read.parquet выполнить отрицательный просмотр вперед? Можно ли это тоже совместить с чередованием? Как?


person xv70    schedule 29.11.2018    source источник
comment
Не могли бы вы просто использовать re или вам нужно использовать spark.read.parquet?   -  person miike3459    schedule 30.11.2018
comment
Я подумал о том, чтобы получить все имена паркета и отфильтровать их с помощью стандартного re, но это, как мне кажется, включает в себя третьи библиотеки, которые я не хочу / не могу использовать.   -  person xv70    schedule 30.11.2018
comment
re не является сторонним и обычно не включает сторонние библиотеки, если вы его правильно используете.   -  person miike3459    schedule 30.11.2018
comment
Справедливо. Я хотел сказать, что не хотел бы получать все имена файлов паркета, используя, например, boto3, регулярное выражение, а затем читать только нужные паркеты. Я хотел бы использовать искру напрямую для фильтрации во время загрузки, но кажется, что регулярное выражение имеет очень ограниченную функциональность в spark.parquet.read.   -  person xv70    schedule 01.12.2018