【问题标题】:How to read large text file stored in S3 from sagemaker jupyter notebook?如何从 sagemaker jupyter notebook 读取存储在 S3 中的大文本文件?
【发布时间】:2021-04-09 13:05:29
【问题描述】:

我有一个大的(大约 25 MB)CSV 文件存储在 S3 中。它包含两列。第一列的每个单元格包含文件引用,第二列的每个单元格包含一个大的(500 到 1000 个字)正文。此 CSV 中有数千行。

我想从sagemaker jupyter notebook 读取它并将其保存为内存中的字符串列表。然后我将在我的 NLP 模型中使用这个列表。

我正在使用以下代码:

    def load_file(bucket, key, sep=','):
        client = boto3.client('s3')
        obj = client.get_object(Bucket=bucket, Key=key)
        data = obj['Body'].read().decode('utf-8')
   
        text = open(data)
        string_io = StringIO(data) 
        return pd.read_csv(string_io, sep=sep)
    file = load_file("bucket", 'key',sep=',')

我收到以下错误:


OSError:[Errno 36] 文件名太长:

【问题讨论】:

    标签: amazon-s3 text boto3 amazon-sagemaker


    【解决方案1】:

    25MB 相对较小,因此您应该对此没有任何问题。您可以在 SageMaker Notebook 实例中使用多种不同的方法。由于 SageMaker Notebook 具有 AWS 执行角色,它会自动为您处理凭证。这使得使用 aws cli 变得容易。此示例会将文件复制到笔记本的本地系统,然后您可以在本地访问文件(相对于笔记本):

    !aws s3 cp s3://$bucket/$key ./
    

    您可以在 this tutorial hosted on GitHub 的 Studio 和笔记本实例中找到将数据提取到 SageMaker Notebooks 的其他示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-29
      相关资源
      最近更新 更多