我在s3文件夹中有多个CSV文件。我想使用不带Pandas的python和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
答案 0 :(得分:0)
如果您可以在lambda函数中访问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
硬编码到函数中根本不是一个好主意。
致谢。