gpt4 book ai didi

python - 使用 block 大小将 CSV 文件从 s3 加载到 Pandas

转载 作者:行者123 更新时间:2023-12-04 13:10:03 24 4
gpt4 key购买 nike

我正在尝试使用...从 s3 读取一个非常大的文件

import pandas as pd
import s3fs
df = pd.read_csv('s3://bucket-name/filename', chunksize=100000)
但即使在给出块大小之后,它也会永远占用。是否 chunksize从 s3 获取文件时的选项工作?如果没有,从 s3 加载大文件有什么更好的方法吗?

最佳答案

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
明确地说

filepath_or_bufferstr, path object or file-like object Any validstring path is acceptable. The string could be a URL. Valid URLschemes include http, ftp, s3, gs, and file. For file URLs, a host isexpected. A local file could be: file://localhost/path/to/table.csv.

If you want to pass in a path object, pandas accepts any os.PathLike.

By file-like object, we refer to objects with a read() method, such asa file handle (e.g. via builtin open function) or StringIO.


在块中读取时,pandas 会返回您的迭代器对象,您需要对其进行迭代。
就像是:
for df in pd.read_csv('s3://<<bucket-name>>/<<filename>>',chunksize = 100000):
process df chunk..
如果你认为这是因为 chunksize 很大,你可以考虑为第一个 chunk 尝试它,只为一个小的 chunksize 像这样:
for df in pd.read_csv('s3://<<bucket-name>>/<<filename>>',chunksize = 1000):
print(df.head())
break

关于python - 使用 block 大小将 CSV 文件从 s3 加载到 Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66375375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com