Как оптимизировать метод ReadBatch для C ++ Parquet - PullRequest
0 голосов
/ 14 мая 2019

Я хочу оптимизировать чтение столбца в Паркет, используя метод ReadBatch.

Вы передаете количество строк для чтения:

int cnt = reader->ReadBatch(10, nullptr, nullptr, &value, &values_read);

В этом случае, я спрашиваю 10, и фактическое прочитанное число - возвращаемое значение.

Есть ли способ получить количество строк в группе строк перед чтением?

1 Ответ

1 голос
/ 15 мая 2019

Используйте метод метаданных в FileReader или RowGroup, чтобы получить количество строк:

 // Total Rows for Parquet File 
  std::unique_ptr<parquet::ParquetFileReader> parquet_reader = ...;
  std::shared_ptr<parquet::FileMetaData> file_metadata = parquet_reader->metadata();
  int total_num_rows = file_metadata->num_rows();

  // Rows for specific Row Group
  std::shared_ptr<parquet::RowGroupReader> row_group_reader = ...; 
  auto rgMetaData = row_group_reader->metadata();
  int rowGroupNumRows = rgMetaData->num_rows();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...