Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何从S3下载大型csv文件而不运行到';内存不足';问题_Amazon Web Services_Amazon S3_Boto3 - Fatal编程技术网

Amazon web services 如何从S3下载大型csv文件而不运行到';内存不足';问题

Amazon web services 如何从S3下载大型csv文件而不运行到';内存不足';问题,amazon-web-services,amazon-s3,boto3,Amazon Web Services,Amazon S3,Boto3,我需要处理存储在S3存储桶中的大型文件。我需要将csv文件分成更小的块进行处理。然而,这似乎是一项在文件系统存储上比在对象存储上做得更好的任务。 因此,我计划将大文件下载到本地,将其分成小块,然后将生成的文件一起上载到另一个文件夹中。 我知道下载文件OBJ的方法,但无法确定下载大小为10GB的大文件时是否会导致内存不足 我建议使用: 下载时不会耗尽内存。Boto3将负责传输过程。我建议使用: 下载时不会耗尽内存。Boto3将负责传输过程。您可以使用awscli命令行执行此操作。按如下方式对输出进

我需要处理存储在S3存储桶中的大型文件。我需要将csv文件分成更小的块进行处理。然而,这似乎是一项在文件系统存储上比在对象存储上做得更好的任务。 因此,我计划将大文件下载到本地,将其分成小块,然后将生成的文件一起上载到另一个文件夹中。 我知道下载文件OBJ的方法,但无法确定下载大小为10GB的大文件时是否会导致内存不足

我建议使用:

下载时不会耗尽内存。Boto3将负责传输过程。

我建议使用:


下载时不会耗尽内存。Boto3将负责传输过程。

您可以使用
awscli
命令行执行此操作。按如下方式对输出进行流式处理:

aws s3 cp s3:///file.txt-

上述命令将在终端中传输文件内容。然后可以使用
split
和/或
tee
命令创建文件块

示例:
aws s3 cp s3:///file.txt-| split-d-b 100000-


此答案中的更多详细信息:

您可以使用
awscli
命令行执行此操作。按如下方式对输出进行流式处理:

aws s3 cp s3:///file.txt-

上述命令将在终端中传输文件内容。然后可以使用
split
和/或
tee
命令创建文件块

示例:
aws s3 cp s3:///file.txt-| split-d-b 100000-

此答案中的更多详细信息:

您可以尝试boto3 api

你可以试试boto3 api


您可以通过进行并发S3API传输调用来提高带宽使用率

        config = TransferConfig(max_concurrency=150)

        s3_client.download_file(
            Bucket=s3_bucket,
            Filename='path',
            Key="key",
            Config=config
        )

您可以通过进行并发S3API传输调用来提高带宽使用率

        config = TransferConfig(max_concurrency=150)

        s3_client.download_file(
            Bucket=s3_bucket,
            Filename='path',
            Key="key",
            Config=config
        )

这会造成麻烦,因为有时在CSV文件中,一行中可能会有换行符,pandas可以处理,但逐行流媒体无法处理。从未遇到过这种情况,我认为也可能需要这样做。尝试使用此文本形成CSV。a、 b C\n,dYeah,我面对这个问题,因此陈述了上述经验。需要注意的是,这一行!=行。这会造成麻烦,因为有时在CSV文件中,在一行中可以有换行符,熊猫可以处理,但逐行流式处理不能。从未遇到过这样的情况,我认为这也可能需要。尝试使用此文本形成CSV。a、 b C\n,dYeah,我面对这个问题,因此陈述了上述经验。需要注意的是,这一行!=线路。
        config = TransferConfig(max_concurrency=150)

        s3_client.download_file(
            Bucket=s3_bucket,
            Filename='path',
            Key="key",
            Config=config
        )