trait PipelineRunner extends AnyRef
Trait defining the interface for pipeline execution.
Implementations of this trait are responsible for: - Loading and parsing pipeline configuration - Configuring the SparkSession - Instantiating and executing pipeline components - Invoking lifecycle hooks at appropriate points
Standard Implementation
The framework provides SimplePipelineRunner as the standard implementation, which executes components sequentially in the order they appear in the configuration.
Custom Implementations
You can create custom runners for specialized behavior: - Parallel execution of independent components - Dry-run mode that validates without executing - Conditional execution based on external state
Example
// Using the standard runner with custom hooks val hooks = new PipelineHooks { override def afterComponent(config: ComponentConfig, index: Int, total: Int, durationMs: Long): Unit = println(s"Component $${config.instanceName} completed in $${durationMs}ms") } SimplePipelineRunner.run(config, hooks)
- Alphabetic
- By Inheritance
- PipelineRunner
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def dryRun(config: Config, hooks: PipelineHooks): DryRunResult
Validates the pipeline configuration without executing components.
Validates the pipeline configuration without executing components.
This method parses the configuration and instantiates all components to verify they can be created, but does not call their
run()methods. Lifecycle hooks are invoked forbeforePipelineandafterPipelineonly.- config
The loaded HOCON configuration containing
pipelineand optionallysparkblocks- hooks
Lifecycle hooks to invoke (only beforePipeline/afterPipeline are called)
- returns
Validation result indicating success or listing errors
- abstract def run(config: Config, hooks: PipelineHooks): Unit
Runs the pipeline defined in the given configuration with lifecycle hooks.
Runs the pipeline defined in the given configuration with lifecycle hooks.
May throw
ComponentInstantiationExceptionif a component cannot be instantiated, orConfigurationExceptionif the configuration is invalid.- config
The loaded HOCON configuration containing
pipelineand optionallysparkblocks- hooks
Lifecycle hooks to invoke during execution
Concrete 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 dryRun(config: Config): DryRunResult
Validates the pipeline configuration without executing components.
Validates the pipeline configuration without executing components.
This method parses the configuration and instantiates all components to verify they can be created, but does not call their
run()methods. Useful for CI/CD pipelines to validate configurations before deployment.This is a convenience method that uses
PipelineHooks.NoOp.- config
The loaded HOCON configuration containing
pipelineand optionallysparkblocks- returns
Validation result indicating success or listing errors
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- 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()
- def run(config: Config): Unit
Runs the pipeline defined in the given configuration.
Runs the pipeline defined in the given configuration.
This is a convenience method that uses
PipelineHooks.NoOp.May throw
ComponentInstantiationExceptionif a component cannot be instantiated, orConfigurationExceptionif the configuration is invalid.- config
The loaded HOCON configuration containing
pipelineand optionallysparkblocks
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- 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]) @native()
- 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)