AWS Lambda: чтение размеров файла CSV из корзины s3 с Python без использования пакета Pandas или CSV - PullRequest
0 голосов
/ 07 марта 2019

добрый день. Я надеюсь, что кто-то может помочь мне с этим вопросом.

У меня есть несколько файлов CSV, которые находятся в папке s3. Я хотел бы использовать python без Pandas и пакет csv (потому что у aws lambda очень ограниченные доступные пакеты и ограничение по размеру) и проходить по файлам, находящимся в корзине s3, и читать размеры csv (длина строки и длина столбцов)

Например, моя папка s3 содержит два файла csv (1.csv и 2 .csv) мой код будет проходить через указанную папку s3 и помещать количество строк и столбцов в 1 csv и 2 csv и помещать результат в новый файл csv. Я очень ценю вашу помощь! Я могу сделать это с помощью пакета Pandas (слава богу, что Pandas, но у aws lambda есть ограничения, которые ограничивают меня в том, что я могу использовать)

AWS lambda использует python 3.7

1 Ответ

0 голосов
/ 08 марта 2019

Если вы можете посещать ресурсы s3 в своей лямбда-функции, то в основном это делается для проверки строк,

def lambda_handler(event, context):
    import boto3 as bt3
    s3 = bt3.client('s3')
    csv1_data = s3.get_object(Bucket='the_s3_bucket', Key='1.csv')
    csv2_data = s3.get_object(Bucket='the_s3_bucket', Key='2.csv')

    contents_1 = csv1_data['Body'].read()
    contents_2 = csv2_data['Body'].read()
    rows1 = contents_1.split()
    rows2=contents_2.split()    
    return len(rows1), len(rows2)

Это должно работать напрямую, если нет, пожалуйста, дайте мне знать. Кстати, жесткое кодирование the bucket and file name в функции, подобное тому, что я делал в примере, вообще не очень хорошая идея.

Привет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...