Найти тему
Властелин машин

Создание схемы данных в Spark

Для оптимизации работы с датафреймом Spark заранее позаботьтесь о задании схемы данных. Это уменьшит время загрузки, сэкономит память и позволит избежать неожиданностей при автоматическом определении типов.

Для примера будем работать с датасетом о пассажирах Титаника. При загрузке данных из источников, не хранящих информацию о типах, по умолчанию колонкам будет присвоен строчный тип:

Если хотите установить автоматическое определение типов, воспользуйтесь параметром inferSchema:

-2

Типы можно посмотреть и через метод dtypes:

-3

Для задания схемы вручную воспользуйтесь классами типов из модуля pyspark.sql.types:

-4

Чаще всего схема определяется как экземпляр объекта StructType, состоящего из списка StructField. Последние требуется инициализировать кортежами с именем поля и его типом для каждой колонки. Также в третьем аргументе конструктора StructField можно задать опцию возможности присутствия пропусков в столбце:

-5

При создании схемы ориентируйтесь на перечень типов c официальной страницы.

-6