apache / apache/parquet-java

Add 'mask' command to parquet-tools/parquet-cli

Open
#2,455 8 comments 0 reactions 0 assignees View on GitHub
Component: Java Component: Parquet Priority: Major Type: enhancement
Dominant language
Java
Stars
3.1k
Forks
1.6k
Avg merge
3d 12h
Merged PRs (30d)
33

Description

Some personal data columns need to be masked instead of being pruned(Parquet-1791). We need a tool to replace the raw data columns with masked value. The masked value could be hash, null, redact etc.  For the unchanged columns, they should be moved as a whole like 'merge', 'prune' command in Parquet-tools. 

 

Implementing this feature in file format is 10X faster than doing it by rewriting the table data in the query engine. 

**Reporter**: [Xinli Shang](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=shangx@uber.com) / @shangxinli
**Assignee**: [Xinli Shang](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=shangx@uber.com) / @shangxinli
#### Subtasks:
- [ ] [Add null command ](https://github.com/apache/parquet-java/issues/2525)
- [ ] [Add hash functionality ](https://github.com/apache/parquet-java/issues/1601)

**Note**: *This issue was originally created as [PARQUET-1792](https://issues.apache.org/jira/browse/PARQUET-1792). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in the parquet-tools/parquet-cli command implementations, using the existing merge and prune commands as references. Review the linked null and hash subtasks before deciding how masking should support hash, null, and redact values. Done means a mask command replaces selected raw columns while moving unchanged columns as a whole.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
cli, data-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.