Я использую блокнот Jupyter с PySpark. Внутри этого у меня есть фреймворк данных со схемой с именами и типами столбцов (целое число,...) для этих столбцов. Теперь я использую такие методы, как flatMap, но это возвращает список кортежей, у которых больше нет фиксированного типа. Есть ли способ добиться этого?
df.printSchema()
root
|-- name: string (nullable = true)
|-- ...
|-- ...
|-- ratings: integer (nullable = true)
Затем я использую flatMap для выполнения некоторых расчетов со значениями рейтинга (здесь они запутаны):
df.flatMap(lambda row: (row.id, 5 if (row.ratings > 5) else row.ratings))
y_rate.toDF().printSchema()
И теперь я получаю сообщение об ошибке:
TypeError: Не удается вывести схему для типа:
Есть ли способ использовать map/flatMap/reduce, сохранив схему? или, по крайней мере, возвращать кортежи со значениями определенного типа?