如何使用PySpark为AWS Glue中保存的表添加描述信息
PySpark写入Glue表同步表描述的实现方法
你可以通过以下两种方式实现表描述写入Glue Data Catalog:
方式1:写入时直接配置(推荐)
Spark 2.3及以上版本支持在write阶段直接通过comment参数指定表描述,会自动同步到Glue对应表的描述字段,完整代码如下:
# 替换your_dataframe为你的实际DataFrame变量名 your_dataframe.write \ .option("comment", "替换为你需要设置的表描述内容") \ .saveAsTable( 'db_temp.tb_temp', format='parquet', path='s3://datalake-123/table/df/', mode='overwrite' )
方式2:写入后通过Glue API补充
如果表已经写入完成,需要追加/修改描述,可通过boto3调用Glue的update_table接口实现:
import boto3 # 替换为你实际使用的AWS区域 glue_client = boto3.client('glue', region_name='us-east-1') glue_client.update_table( DatabaseName='db_temp', TableInput={ 'Name': 'tb_temp', 'Description': '替换为你需要设置的表描述内容', 'StorageDescriptor': { 'Location': 's3://datalake-123/table/df/', 'InputFormat': 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat', 'OutputFormat': 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat', 'SerdeInfo': { 'SerializationLibrary': 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' } }, 'TableType': 'EXTERNAL_TABLE' } )
注意事项
- 如果你使用
mode='overwrite'写入,每次重写都会覆盖原有表属性,建议优先选择方式1在写入时直接配置注释,避免丢失 - 如需配置字段级注释,可在定义DataFrame Schema时为对应字段添加
comment参数,同样会自动同步到Glue的字段描述列
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

