Class

com.nvidia.spark.rapids.shims

OffsetWindowFunctionMeta

Related Doc: package shims

Permalink

abstract class OffsetWindowFunctionMeta[INPUT <: OffsetWindowFunction] extends ExprMeta[INPUT]

Spark 3.1.1-specific replacement for com.nvidia.spark.rapids.OffsetWindowFunctionMeta. This is required primarily for two reasons:

  1. com.nvidia.spark.rapids.OffsetWindowFunctionMeta (compiled against Spark 3.0.x) fails class load in Spark 3.1.x. (expr.input is not recognized as an Expression.) 2. The semantics of offsets in LAG() are reversed/negated in Spark 3.1.1. E.g. The expression LAG(col, 5) causes Lag.offset to be set to -5, as opposed to 5, in prior versions of Spark. This class adjusts the LAG offset to use similar semantics to Spark 3.0.x.
Linear Supertypes
ExprMeta[INPUT], BaseExprMeta[INPUT], RapidsMeta[INPUT, Expression], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. OffsetWindowFunctionMeta
  2. ExprMeta
  3. BaseExprMeta
  4. RapidsMeta
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new OffsetWindowFunctionMeta(expr: INPUT, conf: RapidsConf, parent: Option[RapidsMeta[_, _]], rule: DataFromReplacementRule)

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def addConvertedDataType(expression: Expression, typeMeta: DataTypeMeta): Unit

    Permalink

    Call this method to record information about type conversions via DataTypeMeta.

    Call this method to record information about type conversions via DataTypeMeta.

    Definition Classes
    RapidsMeta
  5. lazy val adjustedOffset: Expression

    Permalink
  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def canDataWriteCmdsBeReplaced: Boolean

    Permalink

    Returns true iff all of the data writing commands can be replaced.

    Returns true iff all of the data writing commands can be replaced.

    Definition Classes
    RapidsMeta
  8. def canExprTreeBeReplaced: Boolean

    Permalink

    Returns true iff all of the expressions and their children could be replaced.

    Returns true iff all of the expressions and their children could be replaced.

    Definition Classes
    BaseExprMetaRapidsMeta
  9. def canPartsBeReplaced: Boolean

    Permalink

    Returns true iff all of the partitioning can be replaced.

    Returns true iff all of the partitioning can be replaced.

    Definition Classes
    RapidsMeta
  10. final def canThisBeAst: Boolean

    Permalink
    Definition Classes
    BaseExprMeta
  11. final def canThisBeReplaced: Boolean

    Permalink

    Returns true iff this could be replaced.

    Returns true iff this could be replaced.

    Definition Classes
    RapidsMeta
  12. var cannotBeReplacedReasons: Option[Set[String]]

    Permalink
    Attributes
    protected
    Definition Classes
    RapidsMeta
  13. var cannotRunOnGpuBecauseOfCost: Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    RapidsMeta
  14. var cannotRunOnGpuBecauseOfSparkPlan: Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    RapidsMeta
  15. def checkTimeZoneId(sessionZoneId: ZoneId): Unit

    Permalink
    Definition Classes
    RapidsMeta
  16. val childDataWriteCmds: Seq[DataWritingCommandMeta[_]]

    Permalink

    The wrapped data writing commands that should be examined

    The wrapped data writing commands that should be examined

    Definition Classes
    BaseExprMetaRapidsMeta
  17. val childExprs: Seq[BaseExprMeta[_]]

    Permalink

    The wrapped expressions that should be examined

    The wrapped expressions that should be examined

    Definition Classes
    OffsetWindowFunctionMetaBaseExprMetaRapidsMeta
  18. val childParts: Seq[PartMeta[_]]

    Permalink

    The wrapped partitioning that should be examined

    The wrapped partitioning that should be examined

    Definition Classes
    BaseExprMetaRapidsMeta
  19. val childPlans: Seq[SparkPlanMeta[_]]

    Permalink

    The wrapped plans that should be examined

    The wrapped plans that should be examined

    Definition Classes
    BaseExprMetaRapidsMeta
  20. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. val conf: RapidsConf

    Permalink

    the config

    the config

    Definition Classes
    RapidsMeta
  22. def confKey: String

    Permalink
    Definition Classes
    RapidsMeta
  23. lazy val context: ExpressionContext

    Permalink
    Definition Classes
    BaseExprMeta
  24. def convertToCpu(): Expression

    Permalink

    Keep this on the CPU, but possibly convert its children under it to run on the GPU if enabled.

    Keep this on the CPU, but possibly convert its children under it to run on the GPU if enabled. By default this just returns what is wrapped by this. For some types of operators/stages, like SparkPlan, each part of the query can be converted independent of other parts. As such in a subclass this should be overridden to do the correct thing.

    Definition Classes
    RapidsMeta
  25. final def costPreventsRunningOnGpu(): Unit

    Permalink
    Definition Classes
    RapidsMeta
  26. def dataType: DataType

    Permalink
    Definition Classes
    BaseExprMeta
  27. lazy val default: BaseExprMeta[_]

    Permalink
  28. final val disabledMsg: Option[String]

    Permalink
    Definition Classes
    RapidsMeta
  29. final def entirePlanExcludedReasons: Set[String]

    Permalink

    Returns the list of reasons the entire plan can't be replaced.

    Returns the list of reasons the entire plan can't be replaced. An empty set means the entire plan is ok to be replaced, do the normal checking per exec and children.

    Definition Classes
    RapidsMeta
  30. final def entirePlanWillNotWork(because: String): Unit

    Permalink

    Call this if there is a condition found that the entire plan is not allowed to run on the GPU.

    Call this if there is a condition found that the entire plan is not allowed to run on the GPU.

    Definition Classes
    RapidsMeta
  31. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  32. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  33. def explain(all: Boolean): String

    Permalink
    Definition Classes
    RapidsMeta
  34. def explainAst(all: Boolean): String

    Permalink
    Definition Classes
    BaseExprMeta
  35. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  36. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  37. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  38. val ignoreUnsetDataTypes: Boolean

    Permalink
    Definition Classes
    BaseExprMeta
  39. final val incompatDoc: Option[String]

    Permalink
    Definition Classes
    RapidsMeta
  40. def indent(append: StringBuilder, depth: Int): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    RapidsMeta
  41. def initReasons(): Unit

    Permalink
    Definition Classes
    RapidsMeta
  42. lazy val input: BaseExprMeta[_]

    Permalink
  43. final def inputFilePreventsRunningOnGpu(): Unit

    Permalink
    Definition Classes
    RapidsMeta
  44. def isDisabledByDefault: Boolean

    Permalink
    Definition Classes
    RapidsMeta
  45. val isFoldableNonLitAllowed: Boolean

    Permalink
    Definition Classes
    BaseExprMeta
  46. def isIncompat: Boolean

    Permalink
    Definition Classes
    RapidsMeta
  47. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  48. final def mustBeReplaced(because: String): Unit

    Permalink
    Definition Classes
    RapidsMeta
  49. final def mustThisBeReplaced: Boolean

    Permalink

    Returns true iff this must be replaced because its children have already been replaced and this needs to also be replaced for compatibility.

    Returns true iff this must be replaced because its children have already been replaced and this needs to also be replaced for compatibility.

    Definition Classes
    RapidsMeta
  50. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  51. def noReplacementPossibleMessage(reasons: String): String

    Permalink
    Definition Classes
    RapidsMeta
  52. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  53. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  54. lazy val offset: BaseExprMeta[_]

    Permalink
  55. final val operationName: String

    Permalink
    Definition Classes
    RapidsMeta
  56. def overrideDataType(dt: DataType): Unit

    Permalink

    Overrides the data type of the wrapped expression during type checking.

    Overrides the data type of the wrapped expression during type checking.

    NOTICE: This method will NOT modify the wrapped expression itself. Therefore, the actual transition on data type is still necessary when converting this expression to GPU.

    Definition Classes
    BaseExprMeta
  57. val parent: Option[RapidsMeta[_, _]]

    Permalink

    the parent of this node, if there is one.

    the parent of this node, if there is one.

    Definition Classes
    RapidsMeta
  58. def print(strBuilder: StringBuilder, depth: Int, all: Boolean): Unit

    Permalink

    Create a string representation of this in append.

    Create a string representation of this in append.

    strBuilder

    where to place the string representation.

    depth

    how far down the tree this is.

    all

    should all the data be printed or just what does not work on the GPU?

    Attributes
    protected
    Definition Classes
    RapidsMeta
  59. def printAst(strBuilder: StringBuilder, depth: Int, all: Boolean): Unit

    Permalink

    Create a string explanation for whether this expression tree can be converted to an AST

    Create a string explanation for whether this expression tree can be converted to an AST

    strBuilder

    where to place the string representation.

    depth

    how far down the tree this is.

    all

    should all the data be printed or just what does not work in the AST?

    Attributes
    protected
    Definition Classes
    BaseExprMeta
  60. val printWrapped: Boolean

    Permalink

    When converting this to a string should we include the string representation of what this wraps too? This is off by default.

    When converting this to a string should we include the string representation of what this wraps too? This is off by default.

    Definition Classes
    BaseExprMetaRapidsMeta
  61. final def recursiveCostPreventsRunningOnGpu(): Unit

    Permalink

    Recursively force a section of the plan back onto CPU, stopping once a plan is reached that is already on CPU.

    Recursively force a section of the plan back onto CPU, stopping once a plan is reached that is already on CPU.

    Definition Classes
    RapidsMeta
  62. final def recursiveSparkPlanPreventsRunningOnGpu(): Unit

    Permalink
    Definition Classes
    RapidsMeta
  63. final def recursiveSparkPlanRemoved(): Unit

    Permalink
    Definition Classes
    RapidsMeta
  64. def replaceMessage: String

    Permalink
    Definition Classes
    RapidsMeta
  65. final def requireAstForGpu(): Unit

    Permalink
    Definition Classes
    BaseExprMeta
  66. final def shouldBeRemoved(because: String): Unit

    Permalink
    Definition Classes
    RapidsMeta
  67. final def shouldThisBeRemoved: Boolean

    Permalink

    Returns true if this node should be removed.

    Returns true if this node should be removed.

    Definition Classes
    RapidsMeta
  68. def suppressWillWorkOnGpuInfo: Boolean

    Permalink
    Definition Classes
    RapidsMeta
  69. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  70. def tagExprForGpu(): Unit

    Permalink

    Called to verify that this expression will work on the GPU.

    Called to verify that this expression will work on the GPU. For most expressions without extra checks all of the checks should have already been done.

    Definition Classes
    OffsetWindowFunctionMetaBaseExprMeta
  71. final def tagForGpu(): Unit

    Permalink

    Tag all of the children to see if they are GPU compatible first.

    Tag all of the children to see if they are GPU compatible first. Do basic common verification for the operators, and then call tagSelfForGpu

    Definition Classes
    RapidsMeta
  72. def tagSelfForAst(): Unit

    Permalink

    Called to verify that this expression will work as a GPU AST expression.

    Called to verify that this expression will work as a GPU AST expression.

    Attributes
    protected
    Definition Classes
    BaseExprMeta
  73. final def tagSelfForGpu(): Unit

    Permalink

    Do any extra checks and tag yourself if you are compatible or not.

    Do any extra checks and tag yourself if you are compatible or not. Be aware that this may already have been marked as incompatible for a number of reasons.

    All of your children should have already been tagged so if there are situations where you may need to disqualify your children for various reasons you may do it here too.

    Definition Classes
    BaseExprMetaRapidsMeta
  74. def toString(): String

    Permalink
    Definition Classes
    RapidsMeta → AnyRef → Any
  75. def typeMeta: DataTypeMeta

    Permalink

    Gets the DataTypeMeta of current BaseExprMeta, which is supposed to be called in the tag methods of expression-level type checks.

    Gets the DataTypeMeta of current BaseExprMeta, which is supposed to be called in the tag methods of expression-level type checks.

    By default, it simply returns the data type of wrapped expression. But for specific expressions, they can easily override data type for type checking through calling the method overrideDataType.

    Definition Classes
    BaseExprMeta
  76. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  77. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  78. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  79. final def willNotWorkInAst(because: String): Unit

    Permalink
    Definition Classes
    BaseExprMeta
  80. final def willNotWorkOnGpu(because: String): Unit

    Permalink

    Call this to indicate that this should not be replaced with a GPU enabled version

    Call this to indicate that this should not be replaced with a GPU enabled version

    because

    why it should not be replaced.

    Definition Classes
    RapidsMeta
  81. def willWorkInAstInfo: String

    Permalink
    Attributes
    protected
    Definition Classes
    BaseExprMeta
  82. val wrapped: INPUT

    Permalink

    what we are wrapping

    what we are wrapping

    Definition Classes
    RapidsMeta

Inherited from ExprMeta[INPUT]

Inherited from BaseExprMeta[INPUT]

Inherited from RapidsMeta[INPUT, Expression]

Inherited from AnyRef

Inherited from Any

Ungrouped