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