Packages

c

org.apache.spark

PipelinedShuffleDependency

class PipelinedShuffleDependency[K, V, C] extends ShuffleDependency[K, V, C]

:: DeveloperApi :: A ShuffleDependency whose output can be read incrementally: a consumer stage may begin reading the shuffle output while the producer stage is still running, rather than waiting for the producer's full, materialized output.

This is a subtype of ShuffleDependency -- and thus, like it, a first-class dependency kind alongside NarrowDependency under Dependency. It is intended to be the marker the DAGScheduler will use to decide that the producer and consumer stages connected by this edge may run concurrently (a "pipelined group"), and that the shuffle layer should serve this shuffle with an incremental shuffle implementation. A plain ShuffleDependency keeps the existing semantics: its output is fully materialized before any consumer reads it.

Two behaviors are active from construction, driven by this type: shuffle registration routes to the incremental (pipelined) shuffle manager via SparkEnv.shuffleManagerFor (a plain ShuffleDependency goes to the blocking manager), and push-based shuffle merge is unconditionally disabled (setShuffleMergeAllowed(false); see below) because merge exposes output only after a post-completion finalize step and would register merge results for a transient shuffle. Beyond those, the concurrent scheduling behavior is added separately by the DAGScheduler components that match on this type; code that only matches the parent ShuffleDependency still treats it as an ordinary (materialized) shuffle for everything else.

The name is *pipelined* rather than *streaming*: reading producer output as it is produced is a general execution capability (software-pipelining of dependent stages), not specific to streaming. Streaming / real-time mode is the first caller, but nothing here is streaming-specific.

Note: the parent's checksumMismatchFullRetryEnabled / checksumMismatchQueryLevelRollbackEnabled parameters are intentionally not exposed here, so they stay at their false defaults for a pipelined shuffle. Their checksum retry / query-level rollback recomputes and re-runs succeeding stages after a mismatch; in a pipelined group any failure aborts the whole group and the caller reruns from scratch, so that stage-level recompute never fires -- the mechanism is moot by construction (it is also incompatible with a consumer that has already read the output incrementally). Leaving the params unset keeps the idiom unreachable.

Annotations
@DeveloperApi()
Linear Supertypes
ShuffleDependency[K, V, C], Logging, Dependency[Product2[K, V]], Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PipelinedShuffleDependency
  2. ShuffleDependency
  3. Logging
  4. Dependency
  5. Serializable
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new PipelinedShuffleDependency(_rdd: RDD[_ <: Product2[K, V]], partitioner: Partitioner, serializer: Serializer = SparkEnv.get.serializer, keyOrdering: Option[Ordering[K]] = None, aggregator: Option[Aggregator[K, V, C]] = None, mapSideCombine: Boolean = false, shuffleWriterProcessor: ShuffleWriteProcessor = new ShuffleWriteProcessor, rowBasedChecksums: Array[RowBasedChecksum] = ShuffleDependency.EMPTY_ROW_BASED_CHECKSUMS)(implicit arg0: ClassTag[K], arg1: ClassTag[V], arg2: ClassTag[C])

Type Members

  1. implicit class LogStringContext extends AnyRef
    Definition Classes
    Logging

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def MDC(key: LogKey, value: Any): MDC
    Attributes
    protected
    Definition Classes
    Logging
  5. val aggregator: Option[Aggregator[K, V, C]]
    Definition Classes
    ShuffleDependency
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def checksumMismatchFullRetryEnabled: Boolean
    Definition Classes
    ShuffleDependency
  8. val checksumMismatchQueryLevelRollbackEnabled: Boolean
    Definition Classes
    ShuffleDependency
  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  10. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  11. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  12. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  13. def getMergerLocs: Seq[BlockManagerId]
    Definition Classes
    ShuffleDependency
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  15. def initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
    Attributes
    protected
    Definition Classes
    Logging
  16. def initializeLogIfNecessary(isInterpreter: Boolean): Unit
    Attributes
    protected
    Definition Classes
    Logging
  17. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  18. def isTraceEnabled(): Boolean
    Attributes
    protected
    Definition Classes
    Logging
  19. val keyOrdering: Option[Ordering[K]]
    Definition Classes
    ShuffleDependency
  20. def log: Logger
    Attributes
    protected
    Definition Classes
    Logging
  21. def logBasedOnLevel(level: Level)(f: => MessageWithContext): Unit
    Attributes
    protected
    Definition Classes
    Logging
  22. def logDebug(msg: => String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  23. def logDebug(entry: LogEntry, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  24. def logDebug(entry: LogEntry): Unit
    Attributes
    protected
    Definition Classes
    Logging
  25. def logDebug(msg: => String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  26. def logError(msg: => String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  27. def logError(entry: LogEntry, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  28. def logError(entry: LogEntry): Unit
    Attributes
    protected
    Definition Classes
    Logging
  29. def logError(msg: => String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  30. def logInfo(msg: => String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  31. def logInfo(entry: LogEntry, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  32. def logInfo(entry: LogEntry): Unit
    Attributes
    protected
    Definition Classes
    Logging
  33. def logInfo(msg: => String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  34. def logName: String
    Attributes
    protected
    Definition Classes
    Logging
  35. def logTrace(msg: => String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  36. def logTrace(entry: LogEntry, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  37. def logTrace(entry: LogEntry): Unit
    Attributes
    protected
    Definition Classes
    Logging
  38. def logTrace(msg: => String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  39. def logWarning(msg: => String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  40. def logWarning(entry: LogEntry, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  41. def logWarning(entry: LogEntry): Unit
    Attributes
    protected
    Definition Classes
    Logging
  42. def logWarning(msg: => String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  43. val mapSideCombine: Boolean
    Definition Classes
    ShuffleDependency
  44. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  45. def newShuffleMergeState(): Unit
    Definition Classes
    ShuffleDependency
  46. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  47. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  48. val partitioner: Partitioner
    Definition Classes
    ShuffleDependency
  49. def rdd: RDD[Product2[K, V]]
    Definition Classes
    ShuffleDependencyDependency
  50. val rowBasedChecksums: Array[RowBasedChecksum]
    Definition Classes
    ShuffleDependency
  51. val serializer: Serializer
    Definition Classes
    ShuffleDependency
  52. def setMergerLocs(mergerLocs: Seq[BlockManagerId]): Unit
    Definition Classes
    ShuffleDependency
  53. val shuffleHandle: ShuffleHandle
    Definition Classes
    ShuffleDependency
  54. val shuffleId: Int
    Definition Classes
    ShuffleDependency
  55. def shuffleMergeAllowed: Boolean
    Definition Classes
    ShuffleDependency
  56. def shuffleMergeEnabled: Boolean
    Definition Classes
    ShuffleDependency
  57. def shuffleMergeFinalized: Boolean

    Returns true if push-based shuffle is disabled or if the shuffle merge for this shuffle is finalized.

    Returns true if push-based shuffle is disabled or if the shuffle merge for this shuffle is finalized.

    Definition Classes
    ShuffleDependency
  58. def shuffleMergeId: Int
    Definition Classes
    ShuffleDependency
  59. val shuffleWriterProcessor: ShuffleWriteProcessor
    Definition Classes
    ShuffleDependency
  60. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  61. def toString(): String
    Definition Classes
    AnyRef → Any
  62. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  63. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  64. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  65. def withLogContext(context: Map[String, String])(body: => Unit): Unit
    Attributes
    protected
    Definition Classes
    Logging

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from ShuffleDependency[K, V, C]

Inherited from Logging

Inherited from Dependency[Product2[K, V]]

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped