跳到内容

此类使您能够与 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

活动绑定

  • $num_rows:行数。

  • $num_columns:列数。

  • $num_row_groups:行组数。

示例

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