繁体   English   中英

从 Amazon S3 存储桶中的某个位置读取 AWS Sagemaker 中的多个 csv 文件

[英]Reading multiple csv files in AWS Sagemaker from a location in Amazon S3 Bucket

我在 S3 的一个位置有多个 csv 文件。 这些文件的名称采用日期格式。 示例:2021_09_30_Output.csv

我需要了解如何在只选择我需要的日期的同时读取此文件夹中的所有文件。 一个例子是只读取九月份的文件。 即:“2022_09_*.csv”将只读取该月的文件

非常感谢您的帮助。 谢谢

您可以创建一个 function,它将根据文件的命名约定使用datetime时间库返回特定日期之后的所有文件。 以下代码段可以帮助您入门:

import datetime

s3 = boto3.resource('s3')
BUCKET_NAME = 'name'
september_1 = datetime.datetime(2021, 9, 1)
files = get_files_after(BUCKET_NAME, september_1)
for file in files:
    contents = file['Body'].read()
    contents = contents.decode("utf-8")
    ...


def get_files_after(bucket, date):
    files = []
    for obj in s3.Bucket(bucket).objects.all():
        key = obj.key
        file_date = key[:-4] # Remove '.csv' from name
        file_date = datetime.datetime.strptime(file_date, '%Y_%m_%d')
        if file_date > date:
            files.append(obj)
    return files

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM