Interface RowGroupInfo
- All Known Implementing Classes:
RowGroupInfo.ByGroups
,RowGroupInfo.MaxGroups
,RowGroupInfo.MaxRows
,RowGroupInfo.SingleGroup
public interface RowGroupInfo
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final class
Splits into RowGroups based on unique values withingroups
, and optionally further splits (per uniquegroups
ensuring that no group is larger thanmaxRows
.static final class
Splits evenly acrossnumRowGroups
RowGroupsstatic final class
Splits evenly across a number of RowGroups, ensuring that no group is larger thanmaxRows
static enum
Keeps all rows within a single RowGroupstatic interface
-
Method Summary
Modifier and TypeMethodDescriptionstatic RowGroupInfo
Splits each unique group into a number of RowGroups.static RowGroupInfo
Splits each unique group into a number of RowGroups.static RowGroupInfo
Splits each unique group into a RowGroup.static RowGroupInfo
Splits each unique group into a RowGroup.static RowGroupInfo
maxGroups
(long numRowGroups) Split evenly into a pre-defined number of RowGroups, each of which contains the same number of rows as each other.static RowGroupInfo
maxRows
(long maxRows) Splits into a number of RowGroups, each of which has no more thanmaxRows
rows.static RowGroupInfo
The default RowGroupInfo implementation.<T> T
walk
(@NotNull RowGroupInfo.Visitor<T> visitor)
-
Method Details
-
singleGroup
The default RowGroupInfo implementation. All data is within a single RowGroup- Returns:
- a
RowGroupInfo
which uses only a single RowGroup
-
maxGroups
Split evenly into a pre-defined number of RowGroups, each of which contains the same number of rows as each other. If the input table size is not evenly divisible by the number of RowGroups requested, then a number of RowGroups will contain 1 fewer row- Parameters:
numRowGroups
- the number of RowGroups to write- Returns:
- A
RowGroupInfo
which splits the input into a pre-defined number of RowGroups
-
maxRows
Splits into a number of RowGroups, each of which has no more thanmaxRows
rows.- Parameters:
maxRows
- the maximum number of rows in each RowGroup- Returns:
- a
RowGroupInfo
which splits the input into a number of RowGroups, each containing no more thanmaxRows
rows
-
byGroups
Splits each unique group into a RowGroup. If the input table does not have all values for the group(s) contiguously, then an exception will be thrown during thewriteTable(...)
call- Parameters:
groups
- Grouping column name(s)- Returns:
- a
RowGroupInfo
which includes a single RowGroup per unique grouping-value
-
byGroups
Splits each unique group into a RowGroup. If the input table does not have all values for the group(s) contiguously, then an exception will be thrown during thewriteTable(...)
call- Parameters:
groups
- Grouping column name(s)- Returns:
- a
RowGroupInfo
which includes a single RowGroup per unique grouping-value
-
byGroups
Splits each unique group into a number of RowGroups. If the input table does not have all values for the group(s) contiguously, then an exception will be thrown during thewriteTable(...)
call. If a given RowGroup yields a row count greater thanmaxRows
, then it will be split further usingmaxRows(long)
- Parameters:
maxRows
- the maximum number of rows in each RowGroupgroups
- Grouping column name(s)- Returns:
- a
RowGroupInfo
which includes a number of RowGroups per unique grouping-value
-
byGroups
Splits each unique group into a number of RowGroups. If the input table does not have all values for the group(s) contiguously, then an exception will be thrown during thewriteTable(...)
call. If a given RowGroup yields a row count greater thanmaxRows
, then it will be split further usingmaxRows(long)
- Parameters:
maxRows
- the maximum number of rows in each RowGroupgroups
- Grouping column name(s)- Returns:
- a
RowGroupInfo
which includes a number of RowGroups per unique grouping-value
-
walk
-