【发布时间】:2019-07-02 01:24:29
【问题描述】:
我需要设置一个 AWS Lambda 函数,当新的 CSV 文件上传到 S3 存储桶时触发,以将 CSV 文件合并到一个主文件(它们将具有相同数量的列和列名),然后是新的主文件文件已上传到另一个 S3 存储桶。
我将 Python 用于 Lambda 函数。我用我的 Lambda 函数和我使用的依赖项(Pandas 和 Numpy)创建了一个 zip 文件夹并上传了它。
目前,当我签入 CloudWatch 时,我必须将要合并在一起的 CSV 文件包含在 zip 文件夹本身中,该函数会合并这些 CSV 文件,并且输出(主文件)在日志中。
我不知道如何将我的代码链接到 S3 存储桶以进行输入和输出。
这是针对我正在开发的应用程序。
这是我正在使用的 python 代码:
import os
import glob
import numpy
import pandas as pd
def handler(event, context):
#find all csv files in the folder
#use glob pattern matching -> extension = 'csv'
#save result in list -> all_filenames
extension = 'csv'
all_filenames = [i for i in glob.glob('*.{}'.format(extension))]
#combine all files in the list
combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames ])
#export to csv
combined_csv.to_csv( "/tmp/combined_csv.csv", index=False, encoding='utf-8-sig')
f = open("/tmp/combined_csv.csv", "r")
print(f.read())
f.close()
我希望不必每次都手动将 CSV 文件输入到与我的 python 脚本相同的 zip 文件夹中,并且还希望输出 Master CSV 文件位于单独的 S3 存储桶中。
【问题讨论】:
标签: python amazon-web-services amazon-s3