簡體   English   中英

AWS Glue - 如何使用 BOTO3 更改 Glue Catalog 表中的列名稱?

[英]AWS Glue - how to change column names in Glue Catalog table using BOTO3?

我正在使用 AWS Glue Crawler 從 S3 zip 文件(無標頭)中讀取並填充 Glue 目錄。

列的名稱默認為: col_0col_1 ...

如何使用例如 python boto3 模塊更改這些列名稱並直接與 AWS Glue 目錄交互?

是否有執行此操作的示例代碼段?

謝謝。

您可以嘗試拉取表格並更新名稱。 這是我會做的一個例子。

首先,我們將嘗試檢索表:

    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']

接下來,我們將使用我們想要更改的值更新表。 我們創建的新表只能有某些字段,以便 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]

現在我們有了更新的表,我們可以操作列名。 這是將“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)

希望這會有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM