如何在 Amazon SageMaker 中读取大文本文件?

问题描述 投票:0回答:2

我想从 s3 存储桶读取多个文本文件,该文件将组成 10M 记录和 900 列的数据帧。 但使用ml.p3.2xlarge实例读取数据花费的时间太长。此外,我想知道是否有更好的方法来读取aws大型实例中所有可用资源的数据。

以下是我现在使用的代码。

def get_data(prefix_objs = prefix_objs, bucket = bucket, i = 0, prefix_df = [], cols = col):
    for obj in prefix_objs:
        i += 1
        key = obj.key
        file_path = 's3://' + bucket.name +'/'+str(key)
        temp = pd.read_csv(file_path,
                          sep = "|",
                          usecols = col)
        print("File No: {}".format(i))
        prefix_df.append(temp)
    return pd.concat(prefix_df)

python pandas amazon-web-services dataframe amazon-sagemaker
2个回答
0
投票

使用 python boto3 客户端或异步版本 aioboto3 从 AWS S3 下载文件


0
投票

这是在 SageMaker 笔记本实例还是 SageMaker 训练作业(异步作业)中?
对于培训工作,请参阅此指南
对于笔记本实例,您可以通过首先使用 CLI 命令:

aws s3 sync s3://... /tmp
在本地复制所有文件,然后从磁盘读取它们来获得更好的性能。

附注 - 尝试切换 P3->G5 实例 - p3.2xlarge 是一种非常旧的实例类型。使用 g5 实例,您将获得更好的成本/效率和更多的 GPU RAM,而且 g5 具有本地 SSD 驱动器,其中 p3.xlarge 使用较慢的 EBS 卷。

© www.soinside.com 2019 - 2024. All rights reserved.