@nurzhannogerbek

Как прочитать несколько parquet файлов в Spark?

Здравствуйте, товарищи! Помогите пожалуйста разобраться со 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 у меня динамичные. Поэтому как лучше всего организовать код по разбивке периода по дням?
  • Вопрос задан
  • 540 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы