Есть ли способ вернуть схему кадра данных pyspark в виде питонической структуры? ⇐ Python

Программы на Python
Anonymous
Есть ли способ вернуть схему кадра данных pyspark в виде питонической структуры?

Сообщение Anonymous »

У меня есть кадр данных Pyspark, и df.schema.fields возвращает это:

Код: Выделить всё

[StructField(Id,StringType,true),
StructField(Sub_l1,DoubleType,true),
StructField(Detail,ArrayType(StructType(List(StructField(Sub_l5,StringType,true))),false),true)]
Есть ли способ заставить pyspark возвращать схему Pythonic, которую я могу сохранить и повторно использовать позже, которая выглядит так:

Код: Выделить всё

 schema = StructType([
StructField("Id", StringType(),True),
StructField("Sub_l1", DoubleType(),True),
StructField("Detail", ArrayType(StructType([StructField("Sub_l5", StringType(), True)]), False), True)
])
Я вижу последнее во многих ответах здесь, но не могу найти метод автоматического создания Pythonic-версии схемы. Возможно, я упускаю что-то очевидное -
Я просмотрел printSchema(), df.dtypes, перебирая df.schema.fields и получая имя, dataType и т. д. (но при этом не учитываются вложенные поля), методы json и методы схемы в документации pyspark. Если уж на то пошло, я знаю, что мы можем рекурсивно пройти через df.schema.fields, чтобы получить и вложенные поля, но мне интересно, есть ли прямой метод для возврата ожидаемого результата.

Подробнее здесь: https://stackoverflow.com/questions/726 ... nic-struct

Вернуться в «Python»