Joe*_*Joe 2 python amazon-web-services boto3 aws-glue
我正在使用 AWS Glue 爬网程序读取 S3 zip 文件(无标头)并填充 Glue 目录。
列默认命名为:col_0, col_1...
如何使用 python boto3 模块更改这些列名称并直接与 AWS Glue 目录交互?
有执行此操作的示例片段吗?
谢谢。
小智 7
您可以尝试拉取表并更新名称。这是我会做的一个例子。
首先我们将尝试检索表:
database_name = 'ENTER TABLE NAME'
table_name = 'ENTER TABLE NAME'
response = self.glue_client.get_table(DatabaseName=database_name,table_name=Name)
old_table = response['Table']
Run Code Online (Sandbox Code Playgroud)
接下来,我们将使用我们想要更改的值来更新表。我们创建的新表只能有某些字段,以便 update_table 接受它。所以我们将执行以下操作。
field_names = [
"Name",
"Description",
"Owner",
"LastAccessTime",
"LastAnalyzedTime",
"Retention",
"StorageDescriptor",
"PartitionKeys",
"ViewOriginalText",
"ViewExpandedText",
"TableType",
"Parameters"
]
new_table = dict()
for key in field_names:
if key in old_table:
new_table[key] = old_table[key]
Run Code Online (Sandbox Code Playgroud)
现在我们有了更新的表,我们可以操作列名。以下是仅将 'col_0' 更改为 'new_col' 的示例
for col in new_table['StorageDescriptor']['Columns']:
if col['Name'] == 'col_0':
col['Name'] = 'new_col'
response=self.glue_client.update_table(DatabaseName=database_name,TableInput=new_table)
Run Code Online (Sandbox Code Playgroud)
希望这有帮助!
| 归档时间: |
|
| 查看次数: |
4433 次 |
| 最近记录: |