Здравствуйте, товарищи! Помогите пожалуйста разобраться со
Spark.
Есть директория в которой лежат кучу parquet файлов. Название этих файлов имеют единый формат:
"DD-MM-YYYY". К примеру:
'01-10-2018',
'02-10-2018',
'03-10-2018' и т.д. В качестве входного параметра ко мне приходит начальная дата (
dateFrom) и конечная дата (
dateTo). Значение этих переменных динамическое.
Если я использую следующий код, то программа вещается:
val mf = spark.read.parquet("/PATH_TO_THE_FOLDER/*").filter($"DATE".between(dateFrom + " 00:00:00", dateTo + " 23:59:59"))
mf.show()
Я так понял
*
проверяет все файлы в директории и поэтому программа вещается.
Как мне не прогонять программу по всей директории, а брать лишь конкретные файлы?
Я подумал можно раздробить период на дни и прочитать каждый файл по отдельности. Затем их объединить. К примеру так:
val mf1 = spark.read.parquet("/PATH_TO_THE_FOLDER/01-10-2018");
val mf2 = spark.read.parquet("/PATH_TO_THE_FOLDER/02-10-2018");
val final = mf1.union(mf2).distinct();
Как я уже упоминал переменные
dateFrom и
dateTo у меня динамичные. Поэтому как лучше всего организовать код по разбивке периода по дням?