Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python AWS胶水作业错误boto3版本_Python_Amazon Web Services_Configuration_Boto3_Aws Glue - Fatal编程技术网

Python AWS胶水作业错误boto3版本

Python AWS胶水作业错误boto3版本,python,amazon-web-services,configuration,boto3,aws-glue,Python,Amazon Web Services,Configuration,Boto3,Aws Glue,我试图在AWS Glue spark作业中运行最新版本的boto3,以访问Glue中默认版本中不可用的方法 要获取boto3的默认版本并验证我想要访问的方法不可用,我运行这段代码,除了我的print语句外,它都是样板文件: import sys import boto3 from awsglue.transforms import * from awsglue.utils import getResolvedOptions from pyspark.context import SparkCon

我试图在AWS Glue spark作业中运行最新版本的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/other_sample”,第20行,打印(athena.list\u table\u metadata)文件“/home/spark/.local/lib/python3.7/site packages/botocore/client.py”,第566行,在getattrself.类中,item)AttributeError:“Athena”对象没有属性“list\u table\u metadata”

好的,正如boto3的旧版本所预期的那样。让我们尝试导入最新版本

我执行以下步骤:

  • 下载boto3-1.17.13-py2.py3-none-any.whl文件
  • 将其放置在S3位置
  • 返回到粘合作业,在安全配置、脚本库和作业参数(可选)第一节中,使用步骤3中的S3位置更新Python库路径
  • 从上面重新运行代码块
  • 返回

    1.17.9

    回溯(最近一次调用):文件“/tmp/other_sample”,第20行,打印(athena.list\u table\u metadata)文件“/home/spark/.local/lib/python3.7/site packages/botocore/client.py”,第566行,在getattrself.类中,item)AttributeError:“Athena”对象没有属性“list\u table\u metadata”

    如果我在本地运行相同的脚本(运行1.17.9),我可以找到以下方法:

    1.17.9


    关于这里发生了什么以及如何访问我希望在升级版本中导入的方法的任何想法?

    最终在中找到了解决方案

    在作业的安全配置、脚本库和作业参数(可选)部分下的粘合作业参数中添加了以下键/值对:

    --其他python模块

    botocore>=1.20.12,boto3>=1.17.12


    它正在工作。谢谢你,伙计!