Я думаю, что лучше сохранить данные так, как вы хотите их читать, вместо того, чтобы пытаться настроить, как Spark загружает данные.
Вы можете прочитать все данные и разбить их на часов по своему усмотрению. Вероятно, вам нужно сначала создать столбец типа «год-месяц-день-час», но затем вы можете перераспределить свои данные на основе этого столбца.
df.repartition(col("year-month-day-hour")).write.format("parquet").save(path-to-file)