Type Parameters:
T - the type of Window element
All Superinterfaces:
Queryable<T>

public interface Window<T> extends Queryable<T>
Represents window which stores elements used by window functions
Since:
4.0.0
  • Method Details

    • of

      static <T, U extends Comparable<? super U>> Window<T> of(Tuple2<T,Long> currentRecord, Partition<Tuple2<T,Long>> partition, WindowDefinition<T,U> windowDefinition)
      Factory method to create Window instance
      Type Parameters:
      T - the type of Window element
      U - the type of field to sort
      Parameters:
      currentRecord - current record
      partition - the partition where the window is constructed
      windowDefinition - window definition
      Returns:
      the Window instance
      Since:
      4.0.0
    • rowNumber

      long rowNumber()
      Returns row number in the window, similar to SQL's row_number()
      Returns:
      the row number
      Since:
      4.0.0
    • lead

      default <V> V lead(Function<? super T,? extends V> extractor)
      Returns the next value in the window, similar to SQL's lead()
      Type Parameters:
      V - the type of field
      Parameters:
      extractor - field extractor
      Returns:
      the next value
      Since:
      4.0.0
    • lead

      default <V> V lead(Function<? super T,? extends V> extractor, long lead)
      Returns the next value in the window, similar to SQL's lead()
      Type Parameters:
      V - the type of field
      Parameters:
      extractor - field extractor
      lead - the offset
      Returns:
      the next value
      Since:
      4.0.0
    • lead

      <V> V lead(Function<? super T,? extends V> extractor, long lead, V def)
      Returns the next value by lead in the window, similar to SQL's lead()
      Type Parameters:
      V - the type of field
      Parameters:
      extractor - field extractor
      lead - the offset
      def - the default value
      Returns:
      the next value by lead
      Since:
      4.0.0
    • lag

      default <V> V lag(Function<? super T,? extends V> extractor)
      Returns the previous value in the window, similar to SQL's lag()
      Type Parameters:
      V - the type of field
      Parameters:
      extractor - field extractor
      Returns:
      the previous value
      Since:
      4.0.0
    • lag

      default <V> V lag(Function<? super T,? extends V> extractor, long lag)
      Returns the previous value in the window, similar to SQL's lag()
      Type Parameters:
      V - the type of field
      Parameters:
      extractor - field extractor
      lag - the offset
      Returns:
      the previous value
      Since:
      4.0.0
    • lag

      <V> V lag(Function<? super T,? extends V> extractor, long lag, V def)
      Returns the previous value by lag in the window, similar to SQL's lag()
      Type Parameters:
      V - the type of field
      Parameters:
      extractor - field extractor
      lag - the offset
      def - the default value
      Returns:
      the previous value by lag
      Since:
      4.0.0
    • firstValue

      <V> V firstValue(Function<? super T,? extends V> extractor)
      Returns the first value in the window
      Type Parameters:
      V - the type of field
      Parameters:
      extractor - field extractor
      Returns:
      the first value
      Since:
      4.0.0
    • lastValue

      <V> V lastValue(Function<? super T,? extends V> extractor)
      Returns the last value in the window
      Type Parameters:
      V - the type of field
      Parameters:
      extractor - field extractor
      Returns:
      the last value
      Since:
      4.0.0
    • nthValue

      <V> V nthValue(Function<? super T,? extends V> extractor, long index)
      Returns the nth value in the window
      Type Parameters:
      V - the type of field
      Parameters:
      extractor - field extractor
      index - index for value to fetch, starting with 0
      Returns:
      the nth value
      Since:
      4.0.0
    • rank

      Long rank()
      Returns the rank in the window
      Returns:
      the rank
      Since:
      4.0.0
    • denseRank

      Long denseRank()
      Returns the dense rank in the window
      Returns:
      the dense rank
      Since:
      4.0.0
    • percentRank

      BigDecimal percentRank()
      Returns the percent rank in the window
      Returns:
      the percent rank
      Since:
      4.0.0
    • cumeDist

      BigDecimal cumeDist()
      Returns the cumulative distribution of a value in the window
      Returns:
      the cumulative distribution of a value
      Since:
      4.0.0
    • ntile

      long ntile(long bucketCnt)
      Distributes rows of an ordered window into a pre-defined number of roughly equal buckets
      Parameters:
      bucketCnt - bucket count
      Returns:
      bucket index starting with 0
      Since:
      4.0.0