Я использую Boto3 для чтения результатов моего запроса Athena в сценарии Python.
У меня есть следующий код, который отлично работает в AWS Lambda.
def get_athena_results(s3_bucket, s3_output_path, execution_id):
s3client = boto3.client('s3')
key = s3_output_path + '/' + execution_id + '.csv'
obj = s3client.get_object(Bucket=s3_bucket, Key=key)
results_iterator = obj['Body'].iter_lines()
results = [r for r in results_iterator]
return results
Когда я запускаю ту же функцию в AWS Glue Python Shell (не задание Spark), я получаю сообщение об ошибке:
Unexpected error: <class 'AttributeError'>
'StreamingBody' object has no attribute 'iter_lines'
Для меня это не имеет смысла, поскольку класс botocore.response.StreamingBody
имеет метод iter_lines
, и он отлично работает в AWS Lambda.
https://botocore.amazonaws.com/v1/documentation/api/latest/reference/response.html
Есть идеи, почему это происходит в AWS Glue Python Shell?
Спасибо
boto3 version:1.9.130
. Кажется, Бото Клея не последний доступный. stackoverflow.com/questions/52972342/update-boto3-for -aws-glue Я пытался обновить его с помощью подпроцессов, но запускал с проблемами прав пользователя. Есть идеи, как это исправить? - person Diego Serrano   schedule 05.09.2019