Skip to content

[Java] Suppor linear dictionary encoder #23254

@asfimport

Description

@asfimport

For many scenarios, the distribution of dictionary entries is highly skewed. In other words, a few dictionary entries occurs much more frequently than others. If we can sort the dictionary by the non-increasing order of entry frequencies, and compare each value to encode from the beginning of the dictionary, we get the following benefits:

  1.  We need no extra memory space or data structure.
    
  2.  The search is extremely efficient, as we are likely to find a match in the first few entries of the dictionary.
    

This is the basic idea behind the linear dictionary encoder. When the scenario is right (highly skewed dictionary distribution), it outperforms both search based encoder and hash table based encoders.

Reporter: Liya Fan / @liyafan82
Assignee: Liya Fan / @liyafan82

PRs and other links:

Note: This issue was originally created as ARROW-6933. Please see the migration documentation for further details.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions