Мне нужно искать во многих объектах s3 текстовую строку только в первой строке. Я понимаю, как это сделать для одного объекта, и по отдельности я могу перечислить все объекты в ведре, но у меня проблемы с их объединением.
Чтобы получить содержимое только из одного файла, у меня есть следующее:
s3 = boto3.client('s3')
sql_stmt = """select * from s3object limit 1"""
req = s3.select_object_content(
Bucket="some-bucket",
Key="some_file",
ExpressionType='SQL',
Expression=sql_stmt,
InputSerialization = {'CSV': {'FileHeaderInfo': 'NONE'}},
OutputSerialization = {'CSV': {}})
Он вернул первую строку, так здорово. Но может ли это работать с обычными методами для обхода всех объектов, таких как paginator? Я не мог заставить его работать.
Кто-то задал этот вопрос в прошлом году, и ответ заключался в том, чтобы использовать Афину, которую я посмотрел, и опять же, она работает для одного объекта, но я не знаю, как это сделать для многих объектов. Поэтому, пожалуйста, не помечайте меня как дубликат, потому что на самом деле он не был решен.
Есть ли способ перебрать содержимое объекта s3 с помощью выражения SQL?
Итак, вопрос в том, как сделать это для всех объектов в ведро? Может ли Афина это сделать? Я не понимаю, как это сделать. Спасибо.