[ https://issues.apache.org/jira/browse/ARROW-3020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16726349#comment-16726349 ]
Tanya Schlusser commented on ARROW-3020: ---------------------------------------- I looked into this and do not believe the Parquet code permits this at the moment despite the comment in the OP's hyperlink saying they thought it did. pyarrow's {{ParquetWriter}} eventually uses this {{FileWriter}} class, and here's the current code (also [linked here|https://github.com/apache/parquet-cpp/blob/642da055adf009652689b20e68a198cffb857651/src/parquet/arrow/writer.cc#L1110-L1129]). {code:title=from "parquet/arrow/writer.h"} Status FileWriter::WriteTable(const Table& table, int64_t chunk_size) { if (chunk_size <= 0) { return Status::Invalid("chunk size per row_group must be greater than 0"); } else if (chunk_size > impl_->properties().max_row_group_length()) { chunk_size = impl_->properties().max_row_group_length(); } for (int chunk = 0; chunk * chunk_size < table.num_rows(); chunk++) { int64_t offset = chunk * chunk_size; int64_t size = std::min(chunk_size, table.num_rows() - offset); RETURN_NOT_OK_ELSE(NewRowGroup(size), PARQUET_IGNORE_NOT_OK(Close())); for (int i = 0; i < table.num_columns(); i++) { auto chunked_data = table.column(i)->data(); RETURN_NOT_OK_ELSE(WriteColumnChunk(chunked_data, offset, size), PARQUET_IGNORE_NOT_OK(Close())); } } return Status::OK(); } {code} > [Python] Addition of option to allow empty Parquet row groups > ------------------------------------------------------------- > > Key: ARROW-3020 > URL: https://issues.apache.org/jira/browse/ARROW-3020 > Project: Apache Arrow > Issue Type: New Feature > Components: C++, Python > Reporter: Alex Mendelson > Priority: Major > Labels: parquet > Fix For: 0.12.0 > > > While our use case is not common, I was able to find one related request from > roughly a year ago. Could this be added as a feature? > https://issues.apache.org/jira/browse/PARQUET-1047 > *Motivation* > We have an application where each row is associated with one of N contexts, > though a minority of contexts may have no associated rows. When encountering > the Nth context, we will wish to retrieve all the associated rows. Row groups > would provide a natural way to index the data, as the nth context could > naturally relate to the nth row group. > Unfortunately, this is not possible at the present time, as pyarrow does not > support writing empty row groups. If one writes a pyarrow.Table containing > zero rows using pyarrow.parquet.ParquetWriter, it is omitted from the final > file, and this distorts the indexing. -- This message was sent by Atlassian JIRA (v7.6.3#76005)