Как работать со схемой, возвращаемой «get_catalog_schema_as_spark_schema»?

#aws-glue-spark

Вопрос:

Пример:

 schema = glueContext.get_catalog_schema_as_spark_schema(database=args['Database'], table_name=args['Table'])
 

если я просто распечатаю возвращенную схему, я смогу увидеть структуру StructType/StructField, что-то похожее на:

 StructType(
    StructField(column1,StringType,true), 
    StructField(column2,StringType,true)
)
 

Сам объект является объектом java, и он, похоже, не соответствует типу структуры, описанному в https://github.com/awslabs/aws-glue-libs/blob/master/awsglue/gluetypes.py

если я попытаюсь выполнить итерацию по fields свойству, это приведет к ошибке, что поля не могут быть повторены.

Как мне работать с этим объектом? В идеале я хочу либо преобразовать его в JSON, либо, по крайней мере, получить список столбцов.

Я ценю любую помощь здесь.

Комментарии:

1. если вам просто нужен список столбцов, вы пробовали преобразовать dyf в df, а затем выполнить ColumnNames = df.schema.names

2. Я не хочу читать столбцы из dyf, я хочу иметь возможность использовать схему, которую я читаю из dataCatalog вместо этого.

3. что вы планируете с ним делать после прочтения?

4. Я надеялся использовать его как способ хранения схемы для обработки моих данных. Это долгая история, я нашел обходной путь к своей проблеме, но все же мне очень любопытно, как я могу работать с этим объектом схемы?