![](/img/trans.png)
[英]How to read only first n rows of parquet files to pandas dataframe?
[英]Pandas : Reading first n rows from parquet file?
我有一個鑲木地板文件,我想將文件中的前n
行讀入熊貓數據框。 我試過的:
df = pd.read_parquet(path= 'filepath', nrows = 10)
它不起作用並給了我錯誤:
TypeError: read_table() got an unexpected keyword argument 'nrows'
我也嘗試過skiprows
參數,但這也給了我同樣的錯誤。
或者,我可以讀取完整的鑲木地板文件並過濾前 n 行,但這將需要我想避免的更多計算。
有什么方法可以實現嗎?
探索周圍,與大熊貓的開發團隊取得聯系后,終點是大熊貓不支持的說法nrows
或skiprows
在閱讀拼花文件。
原因是熊貓使用pyarrow
或fastparquet
實木復合地板引擎來處理實木復合地板文件,而pyarrow
不支持部分讀取文件或通過跳過行讀取文件(不確定fastparquet
)。 以下是熊貓github上的問題鏈接,以供討論。
Parquet文件是面向列的存儲,為此而設計...因此,加載所有文件以僅訪問一行是正常的。
接受的答案已過時。 現在可以只將 parquet 文件的前幾行讀入 Pandas,盡管它有點混亂並且依賴於后端。
要使用 PyArrow 作為后端進行閱讀,請按照以下步驟操作:
from pyarrow.parquet import ParquetFile
import pyarrow as pa
pf = ParquetFile('file_name.pq')
first_ten_rows = next(pf.iter_batches(batch_size = 10))
df = pa.Table.from_batches([first_ten_rows]).to_pandas()
更改行batch_size = 10
以匹配您想要讀入的行數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.