[英]How can I read a csv.gz file with pyarrow from a file object?
我正在嘗試使用 pyarrow 從 S3 讀取一堆 gzip 壓縮的 csv 文件。 pyarrow.csv.read_csv
的文檔頁面說
如果是字符串或路徑,並且以可識別的壓縮文件擴展名結尾(例如“.gz”或“.bz2”
不幸的是,我無法提供字符串值作為輸入路徑,因此 CSV 閱讀器假定沒有壓縮。
import s3fs
import pyarrow.csv as pv
s3 = s3fs.core.S3FileSystem(anon=False)
csv_path = 's3://bucket_name/path/to/file.csv.gz'
with s3.open(csv_path) as s3fp:
table = pv.read_csv(s3fp)
我試圖更深入地研究 pyarrow 內部結構,但我無法確定一種方法來傳遞壓縮類型的附加參數。
找到了解決方法。 在從文件處理程序讀取 csv 之前,可以在兩者之間添加 gzip 解壓縮:
import gzip
import s3fs
import pyarrow.csv as pv
s3 = s3fs.core.S3FileSystem(anon=False)
csv_path = 's3://bucket_name/path/to/file.csv.gz'
with s3.open(csv_path) as s3fp:
with gzip.open(s3fp) as fp:
table = pv.read_csv(fp)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.