Поскольку ваш набор данных правильно разделен с использованием формата паркета, вам просто нужно прочитать каталог Testpath/filename
и позволить Spark выполнить обнаружение раздела.
Он добавит столбец dt
в вашу схему с значение из имени пути: dt=<value>
. Это значение можно использовать для фильтрации набора данных, и Spark оптимизирует чтение, разбивая разделы на все каталоги, которые не соответствуют предикату в столбце dt
. Вы можете попробовать что-то вроде этого:
import spark.implicits._
import org.apache.spark.functions._
val df = spark.read.parquet("Testpath/filename/")
.where($"dt" > date_sub(current_date(), N))
Вы должны убедиться, что spark.sql.parquet.filterPushdown
установлено в значение true (по умолчанию)