[英]Reading a subset of csv files from S3 bucket using lambda and boto3
在我的 s3 存儲桶中,我有大約 30 個 csv 文件,分為 3 類。 對於我的 lambda,我有興趣只挑選其中屬於類別 1 的 8 個。我使用了下一個問題的回答: Reading multiple csv files from S3 bucket with boto3
所以我制定了下一個代碼:
def read_prefix_to_df(prefix,s3_resource,bucket_name):
bucket = s3_resource.Bucket(bucket_name)
prefix_objs = bucket.objects.filter(Prefix=prefix)
prefix_df = []
for obj in prefix_objs:
key = obj.key
body = obj.get()['Body'].read()
df = pd.DataFrame(body)
prefix_df.append(df)
return prefix_df
在哪里:
bucket_name='my_bucket'
prefix='folder/data_overview_*.csv'
這 8 個文件的名稱幾乎相同,除了最后的日期,這就是為什么我使用 * 來選擇與 data_overview_ 相關的所有文件的原因。不幸的是,返回的 dataframe 是空的,我應該更改前綴嗎?
前綴不能包含通配符。
你應該使用:
prefix = 'folder/data_overview_`
如果您需要進一步限制為僅 CSV 個文件,則需要在 Python 代碼中使用if
語句來執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.