如何处理get_catalog_schema_as_spark_schema返回的schema对象?
glueContext.get_catalog_schema_as_spark_schema返回的是PySpark代理的Spark Scala原生StructType Java对象,和AWS Glue Python包中定义的纯Python StructType类实现逻辑不同,直接访问fields属性报错就是因为这个差异。
常用操作示例
获取列名列表
直接调用names属性即可:
column_list = schema.names # 输出示例:['column1', 'column2']
转换为JSON格式
调用json()方法直接获取Schema的JSON字符串,也可以转成Python字典做后续处理:
import json # 获取JSON格式字符串 schema_json_str = schema.json() # 转成Python字典 schema_dict = json.loads(schema_json_str)
遍历所有字段属性
如果需要逐个读取字段名、字段类型、是否可空等配置,调用fields()方法(注意是方法调用,需要加括号,不是直接访问fields属性):
for field in schema.fields(): # 获取字段名 col_name = field.name() # 获取字段类型 col_type = field.dataType().simpleString() # 获取是否允许为空 col_nullable = field.nullable() # 按需处理逻辑 print(f"字段:{col_name}, 类型:{col_type}, 可空:{col_nullable}")
内容的提问来源于stack exchange,提问作者GSazheniuk
相关产品推荐
相关产品推荐

