Это звучит так, как будто вы ищете partitionBy
определено на DataFrameWriter
. Из скаладока:
def partitionBy(colNames: String*): DataFrameWriter[T]
Разбивает вывод по заданным столбцам в файловой системе. Если указано, выходные данные отображаются в файловой системе, аналогичной схеме разделения Hive. Например, когда мы разделяем набор данных по годам, а затем по месяцам, макет каталога будет выглядеть следующим образом:
year=2016/month=01/
year=2016/month=02/
Секционирование-один из наиболее широко используемых методов оптимизации компоновки физических данных. Он обеспечивает грубозернистый индекс для пропуска ненужных операций чтения данных, когда запросы содержат предикаты в секционированных столбцах. Для того чтобы разделение работало хорошо, количество различных значений в каждом столбце обычно должно быть меньше десятков тысяч.
Это применимо для всех файловых источников данных (например, Parquet, JSON), начиная с Spark 2.1.0.