You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Norbert (Jira)" <ji...@apache.org> on 2020/09/10 10:18:00 UTC
[jira] [Created] (ARROW-9959) [Python][C++][Parquet] Ability to
delete row groups from metadata
Norbert created ARROW-9959:
------------------------------
Summary: [Python][C++][Parquet] Ability to delete row groups from metadata
Key: ARROW-9959
URL: https://issues.apache.org/jira/browse/ARROW-9959
Project: Apache Arrow
Issue Type: Improvement
Reporter: Norbert
Hi,
We currently use PyArrow to maintain a partitioned dataset of Parquet files on disk. We also manage our own `_metadata` file - when new rows are written to the dataset, we use the `metadata_collector` argument of `write_to_dataset` to collect all metadata that was written inside individual files. We then load the existing `_metadata` file and merge it with all the newly-written metadatas using `metadata.append_row_groups` (as in the docs) and then write the result to `_metadata` on disk.
However, we would also like to occasionally amend this dataset by deleting individual files. In order to keep the `_metadata` file in sync, we would need to load the metadata of all the files we're willing to delete, then find their row groups inside `_metadata` and remove them. Therefore we require a method such as `delete_row_groups` to exist on the `FileMetaData` object. Would it be possible for PyArrow to support this? Another way of accomplishing the same thing would be to initialise an empty `FileMetaData` object and simply use `append_row_groups` to add back all the row groups that are required. However, I've been unable to accomplish this programmaticaly as the constructor for `FileMetaData` seems to ask for a C structure which I'm not sure how to construct.
Many thanks.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)