此类使您可以与 Parquet 文件进行交互。
工厂
ParquetFileReader$create() 工厂方法实例化该对象并接受以下参数
- file字符文件名、原始向量或 Arrow 文件连接对象(例如- RandomAccessFile)。
- props可选的 ParquetArrowReaderProperties
- mmap逻辑值:是否对文件进行内存映射 (默认为- TRUE)
- reader_props可选的 ParquetReaderProperties
- ...其他参数,目前被忽略
方法
- $ReadTable(column_indices):从文件获取- arrow::Table。可选的- column_indices=参数是一个从 0 开始的整数向量,指示要保留哪些列。
- $ReadRowGroup(i, column_indices):通过读取第- i个行组(从 0 开始)来获取- arrow::Table。可选的- column_indices=参数是一个从 0 开始的整数向量,指示要保留哪些列。
- $ReadRowGroups(row_groups, column_indices):通过读取多个行组(从 0 开始的整数)来获取- arrow::Table。可选的- column_indices=参数是一个从 0 开始的整数向量,指示要保留哪些列。
- $GetSchema():获取文件中数据的- arrow::Schema
- $ReadColumn(i):将第- i列(从 0 开始)读取为 ChunkedArray。
示例
f <- system.file("v0.7.1.parquet", package = "arrow")
pq <- ParquetFileReader$create(f)
pq$GetSchema()
#> Schema
#> carat: double
#> cut: string
#> color: string
#> clarity: string
#> depth: double
#> table: double
#> price: int64
#> x: double
#> y: double
#> z: double
#> __index_level_0__: int64
#> 
#> See $metadata for additional Schema metadata
if (codec_is_available("snappy")) {
  # This file has compressed data columns
  tab <- pq$ReadTable()
  tab$schema
}
#> Schema
#> carat: double
#> cut: string
#> color: string
#> clarity: string
#> depth: double
#> table: double
#> price: int64
#> x: double
#> y: double
#> z: double
#> __index_level_0__: int64
#> 
#> See $metadata for additional Schema metadata