Новичок в программировании и у него возникли сомнения относительно метода чтения секционированных таблиц с использованием pyspark.
Допустим, у нас есть таблица, разделенная, как показано ниже:
~/$table_name/category=$category/year=$year/month=$month/day=$day
Теперь я хочу прочитать данные из всех категорий, но хочу ограничить данные периодом времени. Есть ли способ указать это с помощью подстановочных знаков, а не записывать все отдельные пути?
Что-то с эффектом
table_path = ["~/$table_name/category=*/year=2019/month=03",
"~/$table_name/category=*/year=2019/month=04"]
table_df_raw = spark.read.option(
"basePath", "~/$table_name").parquet(*table_path)
Кроме того, в качестве бонуса есть более питонский способ указать временные диапазоны, которые могут приходиться на разные годы, а не перечислять пути по отдельности.
Редактировать: Чтобы прояснить некоторые моменты, у меня нет доступа к метасольве улья для этой таблицы, и поэтому я не могу получить доступ только с помощью SQL-запроса. Кроме того, размер данных не позволяет фильтровать после преобразования в dataframe.