У меня есть кадр данных pyspark, и схема выглядит так.
root
|-- useragent: string (nullable = true)
|-- properties: struct (nullable = true)
| |-- browser: string (nullable = true)
| |-- device: string (nullable = true)
Я использую udf + withColumn для извлечения дополнительной информации из пользовательского агента. Но я могу хранить любое дополнительное свойство, которое я создаю, только в новом столбце. Есть ли способ добавить его в саму структуру?
Я изменил схему, но она не передает все данные, которые мне нужны, из других свойств, которые уже существуют.
df = df.schema['properties'].dataType.add(StructField('type', StringType()))
Имеет ли смысл преобразовать это в RDD?