object QualitySparkUtils
Set of utilities to reach in to private functions
- Alphabetic
- By Inheritance
- QualitySparkUtils
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- case class Batch(name: String, strategy: Strategy, rules: Rule[LogicalPlan]*) extends Product with Serializable
- type DatasetBase[F] = Dataset[F]
- case class EvaluableExpressions(plan: LogicalPlan) extends PredicateHelperPlus with Product with Serializable
- case class FakePlan(expr: Expression, child: LogicalPlan) extends LogicalPlan with UnaryNode with Product with Serializable
- case class Strategy(maxIterations: Int, errorOnExceed: Boolean = false, maxIterationsSetting: String = null) extends Product with Serializable
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def drop_field(update: Column, fieldNames: String*): Column
Drops a field from a structure
Drops a field from a structure
- fieldNames
may be nested
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def execute(logicalPlan: LogicalPlan, batch: Batch): LogicalPlan
- def funNRewrite(plan: LogicalPlan, expressionToExpression: PartialFunction[Expression, Expression]): LogicalPlan
- def genParams(ctx: CodegenContext, child: Expression): (String, String, String)
Spark >3.1 supports the very useful getLocalInputVariableValues, 2.4 needs the previous approach
Spark >3.1 supports the very useful getLocalInputVariableValues, 2.4 needs the previous approach
- returns
(parameters for function decleration, parmaters for calling, code that must be before fungroup)
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- lazy val optimizerBatches: Seq[Rule[LogicalPlan]]
- def registerLambdaFunctions(functions: Seq[LambdaFunction]): Unit
- def resolution(analyzer: Analyzer, sparkSession: SparkSession, plan: LogicalPlan): Batch
- def resolveExpression(dataFrame: DataFrame, expr: Expression): Expression
Resolves expressions against a dataframe, this allows them to be swapped out after name checking - spark cannot then simply optimise the tree so certain things like constant folding etc.
Resolves expressions against a dataframe, this allows them to be swapped out after name checking - spark cannot then simply optimise the tree so certain things like constant folding etc. won't show up.
- dataFrame
resolve's must be against a given dataframe to keep names matching
- expr
the expression to resolve
- def resolveExpressions[T, R](encFrom: Encoder[T], embeddedTypeCorrection: EmbeddedTypeCorrection, dataFrameF: (DataFrame) => DataFrame)(implicit arg0: Encoder[R]): (Seq[Expression], Expression)
Provides a starting plan for a dataframe, resolves the
Provides a starting plan for a dataframe, resolves the
- encFrom
starting data type to encode from
- def resolveExpressions(fields: StructType, dataFrameF: (DataFrame) => DataFrame): Seq[Expression]
Provides a starting plan for a dataframe, resolves the
Provides a starting plan for a dataframe, resolves the
- fields
input types
- def resolveWithOverride(orig: Option[DataFrame]): Option[DataFrame]
Where resolveWith is not possible (e.g.
Where resolveWith is not possible (e.g. 10.x DBRs) it is disabled here. This is, in the 10.x DBR case, due to the class files for UnaryNode (FakePlan) being radically different and causing an IncompatibleClassChangeError: Implementing class
- def rowProcessor(exprs: Seq[Expression], compile: Boolean = true): Projection
Creates a projection from InputRow to InputRow.
Creates a projection from InputRow to InputRow.
- exprs
expressions from resolveExpressions, already resolved without
- returns
typically a mutable projection, callers must ensure partition is set and the target row is provided
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def transformFields(exp: Expression): Expression
- Attributes
- protected
- def tryResolveReferences(sparkSession: SparkSession)(expr: Expression, child: LogicalPlan): Expression
- Attributes
- protected
- def update_field(update: Column, transformations: (String, Column)*): Column
Adds fields, in order, for each field path it's paired transformation is applied to the update column
Adds fields, in order, for each field path it's paired transformation is applied to the update column
- returns
a new copy of update with the changes applied
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)