下午好。我希望有人能帮我解决这个问题。
我有多个CSV文件,坐在一个s3文件夹。我想使用没有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
如果可以在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)
它应该直接工作,如果没有,请让我知道。顺便说一句,像我在示例中所做的那样将桶和文件名硬编码到函数中根本不是一个好主意。
当做