簡體   English   中英

AWS Glue 作業錯誤 boto3 版本

[英]AWS Glue Job Wrong boto3 Version

我正在嘗試在 AWS Glue 火花作業中運行最新版本的 boto3 以訪問 Glue 的默認版本中不可用的方法。

為了獲得 boto3 的默認版本並驗證我想要訪問的方法不可用,我運行了這個代碼塊,除了我的print語句之外,它都是樣板:

import sys
import boto3
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job

## @params: [JOB_NAME]
args = getResolvedOptions(sys.argv, ['JOB_NAME'])

sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)
job.init(args['JOB_NAME'], args)

athena = boto3.client('athena')
print(boto3.__version__) # verify the default version boto3 imports
print(athena.list_table_metadata) # method I want to verify I can access in Glue

job.commit()

返回

1.12.4

回溯(最后一次調用):文件“/tmp/another_sample”,第 20 行,在 print(athena.list_table_metadata) 文件“/home/spark/.local/lib/python3.7/site-packages/botocore/client. py",第 566 行,在getattr self. class name , item) AttributeError: 'Athena' object has no attribute 'list_table_metadata'

好的,正如舊版本的 boto3 所期望的那樣。 讓我們嘗試導入最新版本...

我執行以下步驟:

  1. Go 到https://pypi.org/project/boto3/#files
  2. 下載boto3-1.17.13-py2.py3-none-any.whl文件
  3. 將其放置在 S3 位置
  4. Go 返回 Glue 作業並在安全配置、腳本庫和作業參數(可選)部分下,我使用步驟 3 中的 S3 位置更新Python 庫路徑
  5. 從上面重新運行代碼塊

返回

1.17.9

回溯(最后一次調用):文件“/tmp/another_sample”,第 20 行,在 print(athena.list_table_metadata) 文件“/home/spark/.local/lib/python3.7/site-packages/botocore/client. py",第 566 行,在getattr self. class name , item) AttributeError: 'Athena' object has no attribute 'list_table_metadata'

如果我在本地運行相同的腳本,它正在運行 1.17.9,我可以找到該方法:

1.17.9

<botocore.client.Athena object at 0x7efd8a4f4710的<綁定方法ClientCreator._create_api_method.._api_call>>

關於這里發生了什么以及如何訪問我期望應該在升級版本中導入的方法的任何想法?

最終在AWS 文檔中找到了解決方案。

在作業的安全配置、腳本庫和作業參數(可選)部分下的 Glue作業參數中添加了以下鍵/值對:

關鍵

--additional-python-modules

價值

botocore>=1.20.12,boto3>=1.17.12

在此處輸入圖像描述

暫無
暫無

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

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