Interface RowGroupInfo

All Known Implementing Classes:
RowGroupInfo.ByGroups, RowGroupInfo.MaxGroups, RowGroupInfo.MaxRows, RowGroupInfo.SingleGroup

public interface RowGroupInfo
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static final class 
    Splits into RowGroups based on unique values within groups, and optionally further splits (per unique groups ensuring that no group is larger than maxRows.
    static final class 
    Splits evenly across numRowGroups RowGroups
    static final class 
    Splits evenly across a number of RowGroups, ensuring that no group is larger than maxRows
    static enum 
    Keeps all rows within a single RowGroup
    static interface 
     
  • Method Summary

    Modifier and Type
    Method
    Description
    byGroups(long maxRows, String... groups)
    Splits each unique group into a number of RowGroups.
    byGroups(long maxRows, List<String> groups)
    Splits each unique group into a number of RowGroups.
    byGroups(String... groups)
    Splits each unique group into a RowGroup.
    byGroups(List<String> groups)
    Splits each unique group into a RowGroup.
    maxGroups(long numRowGroups)
    Split evenly into a pre-defined number of RowGroups, each of which contains the same number of rows as each other.
    maxRows(long maxRows)
    Splits into a number of RowGroups, each of which has no more than maxRows rows.
    The default RowGroupInfo implementation.
    <T> T
    walk(@NotNull RowGroupInfo.Visitor<T> visitor)
     
  • Method Details

    • singleGroup

      @ScriptApi static RowGroupInfo singleGroup()
      The default RowGroupInfo implementation. All data is within a single RowGroup
      Returns:
      a RowGroupInfo which uses only a single RowGroup
    • maxGroups

      @ScriptApi 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. 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

      @ScriptApi static RowGroupInfo maxRows(long maxRows)
      Splits into a number of RowGroups, each of which has no more than maxRows 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 than maxRows rows
    • byGroups

      @ScriptApi static RowGroupInfo byGroups(String... groups)
      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 the writeTable(...) call
      Parameters:
      groups - Grouping column name(s)
      Returns:
      a RowGroupInfo which includes a single RowGroup per unique grouping-value
    • byGroups

      @ScriptApi static RowGroupInfo byGroups(List<String> groups)
      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 the writeTable(...) call
      Parameters:
      groups - Grouping column name(s)
      Returns:
      a RowGroupInfo which includes a single RowGroup per unique grouping-value
    • byGroups

      @ScriptApi static RowGroupInfo byGroups(long maxRows, String... groups)
      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 the writeTable(...) call. If a given RowGroup yields a row count greater than maxRows, then it will be split further using maxRows(long)
      Parameters:
      maxRows - the maximum number of rows in each RowGroup
      groups - Grouping column name(s)
      Returns:
      a RowGroupInfo which includes a number of RowGroups per unique grouping-value
    • byGroups

      @ScriptApi static RowGroupInfo byGroups(long maxRows, List<String> groups)
      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 the writeTable(...) call. If a given RowGroup yields a row count greater than maxRows, then it will be split further using maxRows(long)
      Parameters:
      maxRows - the maximum number of rows in each RowGroup
      groups - Grouping column name(s)
      Returns:
      a RowGroupInfo which includes a number of RowGroups per unique grouping-value
    • walk

      <T> T walk(@NotNull @NotNull RowGroupInfo.Visitor<T> visitor)