首页 > 解决方案 > AWS Lambda - 根据文件名导入 csv 文件

问题描述

我有一个模型,我正试图转移到 AWS Lambda。我遇到了一些我找不到答案的项目。我需要根据名称导入几个 csv 文件,然后将它们组合起来。在 python 中,我使用了一个在 lambda 中不起作用的简单 glob 函数。我的指导将不胜感激。

我在 Python 中有这段代码

inputFiles = glob.glob('C:/Users/some files/test*.csv')

df_list = []
for filename in sorted(inputFiles):
    df_list.append(pd.read_csv(filename))
    Final_df= pd.concat(df_list)

我尝试使用类似的代码来做同样的事情(它产生了一个空集)

inputFiles = glob.glob('s3://my-bucket/test*.csv')

df_list = []
for filename in sorted(inputFiles):
    df_list.append(pd.read_csv(filename))
    Final_df= pd.concat(df_list)

更新我有循环读取所有必需的名称,但找不到将它们作为数据框导入的方法?

bucket=s3_resource.Bucket(bucket_name)
for key in bucket.objects.all():
    if key.key.startswith('test'):
        print(key.key)

标签: pythonaws-lambda

解决方案


glob不适用于 s3 URI,它不是普通的文件系统。boto3是适用于 AWS 的 Python 开发工具包,您可以使用它来列出存储桶中的对象并检索它们。然后,您可以使用 pandas 读取本地副本。查看这些方法的 api 文档:


推荐阅读