Get desktop application:
View/edit binary Protocol Buffers messages
How a scheduler sends a stage to its executors, inside the task plans Ballista ships. The scheduler and the executors come from one build, so this needs no version check of its own.
The block every partition runs. Empty for a stage that reads files, where each partition runs its own copy, which the partition descriptor carries.
Whether every partition reads all of each input, one entry per input.
A query submitted by a Spark driver to a Comet Native Executor cluster, as the command of an Arrow Flight GetFlightInfo request.
The Comet version and proto fingerprint of the client's build. The scheduler requires both to match its own.
Spark and Comet configs that native execution reads, as a Spark task would pass them.
Stages in topological order: every stage's producers come before it. The last stage is the root, and its output is the query result.
Used in:
The stage's native block. Its input leaves (Scan and ShuffleScan) read the stage's inputs, matched in the order a depth-first walk of the block meets them.
For a stage that reads files: the block with each partition's files injected, one serialized Operator per partition. Empty for a stage whose partitions all run `plan`.
The number of partitions of a stage that reads no exchange: the length of partition_plans for a stage that reads files, or otherwise the block's own, such as a range's number of slices. A stage that reads exchanges has as many partitions as they deliver.
The block's output as Spark declares it. Each partition's output is cast to it before it leaves the stage, as a Spark task's shuffle writer does, because a hash exchange places rows by the types of their values too.
Used in:
Index into QueryRequest.stages of the stage producing this input.
How the producer's output is partitioned for this stage. Unset for a broadcast.
Every partition of this stage reads the producer's whole output.