Чтение нескольких шаблонов файлов с подстановочными знаками в течение нескольких дней — pyspark

#regex #apache-spark #pyspark #wildcard

#регулярное выражение #apache-spark #pyspark #подстановочный знак

Вопрос:

У меня есть 60 дней файлов, которые мне нужно загрузить и выполнить некоторые проверки. Я могу загрузить 1 шаблон для данного дня следующим образом

 df = spark.read.csv("/data/id/date=20201217/20201217_*_a_id_*.gz", sep='t')
 

Однако существуют дополнительные шаблоны, и я хотел бы загрузить приведенные ниже шаблоны файлов за последние 60 дней

 20201217/20201217_*_a_id_*.gz
20201217/20201217_*_x_id_*.gz
20201217/20201217_*_m_id_*.gz
20201217/20201217_*_0_image_id_*.gz
20201217/20201217_*_2_image_id_*.gz
 

Я пробовал

 df = spark.read.csv("/data/id/date=*_{a,x,m,0_image,2_image}_id_*.gz", sep='t')
 

Комментарии:

1. у hadoop нет того же набора функций, что и у расширения оболочки .. глобализация и другие регулярные выражения .. лучше загружать по отдельности, а затем выполнять «объединение всех»

2. это работает для меня в spark 3.0. какую версию spark вы используете?

3. вместо регулярного выражения вы можете получить необходимые файлы с помощью hdfs api и передать список путей к файлам или файлам в csv-функцию через запятую.

4. @mck 2.0. Я уже использовал этот синтаксис в скриптах pig раньше и надеялся, что он будет таким же.