Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ import org.apache.spark.sql.pipelines.graph.{AllTables, FlowAnalysis, GraphIdent
import org.apache.spark.sql.pipelines.logging.{PipelineEvent, RunProgress}
import org.apache.spark.sql.types.StructType

/** Handler for SparkConnect PipelineCommands */
private[connect] object PipelinesHandler extends Logging {
/** Trait for handling SparkConnect PipelineCommands */
trait PipelinesHandler extends Logging {

/**
* Handles the pipeline command
Expand All @@ -47,14 +47,27 @@ private[connect] object PipelinesHandler extends Logging {
* Command to be handled
* @param responseObserver
* The response observer where the response will be sent
* @param sparkSession
* The spark session
* @param transformRelationFunc
* Function used to convert a relation to a LogicalPlan. This is used when determining the
* LogicalPlan that a flow returns.
* @return
* The response after handling the command
*/
def handlePipelinesCommand(
sessionHolder: SessionHolder,
cmd: proto.PipelineCommand,
responseObserver: StreamObserver[ExecutePlanResponse],
transformRelationFunc: Relation => LogicalPlan): PipelineCommandResult

/**
* A case class to hold the table filters for full refresh and refresh operations.
*/
protected case class TableFilters(fullRefresh: TableFilter, refresh: TableFilter)
}

/** Handler for SparkConnect PipelineCommands */
private[connect] object SparkPipelinesHandler extends PipelinesHandler {

def handlePipelinesCommand(
sessionHolder: SessionHolder,
cmd: proto.PipelineCommand,
Expand Down Expand Up @@ -358,9 +371,4 @@ private[connect] object PipelinesHandler extends Logging {
refresh = SomeTables(refreshTableNames))
}
}

/**
* A case class to hold the table filters for full refresh and refresh operations.
*/
private case class TableFilters(fullRefresh: TableFilter, refresh: TableFilter)
}
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ import org.apache.spark.sql.connect.client.arrow.ArrowSerializer
import org.apache.spark.sql.connect.common.{DataTypeProtoConverter, ForeachWriterPacket, LiteralValueProtoConverter, StorageLevelProtoConverter, StreamingListenerPacket, UdfPacket}
import org.apache.spark.sql.connect.config.Connect.CONNECT_GRPC_ARROW_MAX_BATCH_SIZE
import org.apache.spark.sql.connect.ml.MLHandler
import org.apache.spark.sql.connect.pipelines.PipelinesHandler
import org.apache.spark.sql.connect.pipelines.SparkPipelinesHandler
import org.apache.spark.sql.connect.plugin.SparkConnectPluginRegistry
import org.apache.spark.sql.connect.service.{ExecuteHolder, SessionHolder, SparkConnectService}
import org.apache.spark.sql.connect.utils.MetricGenerator
Expand Down Expand Up @@ -2739,7 +2739,7 @@ class SparkConnectPlanner(
private def handlePipelineCommand(
command: proto.PipelineCommand,
responseObserver: StreamObserver[proto.ExecutePlanResponse]): Unit = {
val res = PipelinesHandler.handlePipelinesCommand(
val res = SparkPipelinesHandler.handlePipelinesCommand(
sessionHolder,
command,
responseObserver,
Expand Down