簡體   English   中英

如何從文件對象中讀取帶有 pyarrow 的 csv.gz 文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM