Packages

c

org.apache.spark.here

PartitionerAwareUnionRDD2

class PartitionerAwareUnionRDD2[T] extends PartitionerAwareUnionRDD[T]

Version of PartitionerAwareUnionRDD that fixes the exponential behaviour of the original PartitionerAwareUnionRDD.getPreferredLocations.

The original implementation, in an attempt to optimize which preferred locations are picked, delegates the SparkContext (hence the DAGScheduler) to find the preferred locations of the parent RDDs. But doing so makes the DAGScheduler recursively walk the RDD graph until a preferred location is found. Since memoization is in place for a single call of DAGScheduler.getPreferredLocs but not across different calls of the method, if in a DAG several PartitionerAwareUnionRDD are chained together, getPreferredLocations will, for each of the upstream PartitionerAwareUnionRDDs, visit the sub-graph again, recursively. This can soon become very slow (and can block the driver for hours). In this fix we give up on trying to use the current preferred locations, and use the static ones instead.

The issue is described in https://issues.apache.org/jira/browse/SPARK-33356.

This class uses internal APIs marked as "developer API" so special attention should be paid when the software is updated to a newer version of Spark. As of today (latest Spark version 3.4.1) PartitionerAwareUnionRDD hasn't undergone any noticeable change since v2.4.7.

Linear Supertypes
PartitionerAwareUnionRDD[T], RDD[T], Logging, Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PartitionerAwareUnionRDD2
  2. PartitionerAwareUnionRDD
  3. RDD
  4. Logging
  5. Serializable
  6. Serializable
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new PartitionerAwareUnionRDD2(sc: SparkContext, rdds: Seq[RDD[T]])(implicit arg0: ClassTag[T])

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def ++(other: RDD[T]): RDD[T]
    Definition Classes
    RDD
  4. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  5. def aggregate[U](zeroValue: U)(seqOp: (U, T) ⇒ U, combOp: (U, U) ⇒ U)(implicit arg0: ClassTag[U]): U
    Definition Classes
    RDD
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def barrier(): RDDBarrier[T]
    Definition Classes
    RDD
    Annotations
    @Experimental() @Since( "2.4.0" )
  8. def cache(): PartitionerAwareUnionRDD2.this.type
    Definition Classes
    RDD
  9. def cartesian[U](other: RDD[U])(implicit arg0: ClassTag[U]): RDD[(T, U)]
    Definition Classes
    RDD
  10. def checkpoint(): Unit
    Definition Classes
    RDD
  11. def cleanShuffleDependencies(blocking: Boolean): Unit
    Definition Classes
    RDD
    Annotations
    @DeveloperApi() @Since( "3.1.0" )
  12. def clearDependencies(): Unit
    Definition Classes
    PartitionerAwareUnionRDD → RDD
  13. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  14. def coalesce(numPartitions: Int, shuffle: Boolean, partitionCoalescer: Option[PartitionCoalescer])(implicit ord: Ordering[T]): RDD[T]
    Definition Classes
    RDD
  15. def collect[U](f: PartialFunction[T, U])(implicit arg0: ClassTag[U]): RDD[U]
    Definition Classes
    RDD
  16. def collect(): Array[T]
    Definition Classes
    RDD
  17. def compute(s: Partition, context: TaskContext): Iterator[T]
    Definition Classes
    PartitionerAwareUnionRDD → RDD
  18. def context: SparkContext
    Definition Classes
    RDD
  19. def count(): Long
    Definition Classes
    RDD
  20. def countApprox(timeout: Long, confidence: Double): PartialResult[BoundedDouble]
    Definition Classes
    RDD
  21. def countApproxDistinct(relativeSD: Double): Long
    Definition Classes
    RDD
  22. def countApproxDistinct(p: Int, sp: Int): Long
    Definition Classes
    RDD
  23. def countByValue()(implicit ord: Ordering[T]): Map[T, Long]
    Definition Classes
    RDD
  24. def countByValueApprox(timeout: Long, confidence: Double)(implicit ord: Ordering[T]): PartialResult[Map[T, BoundedDouble]]
    Definition Classes
    RDD
  25. final def dependencies: Seq[Dependency[_]]
    Definition Classes
    RDD
  26. def distinct(): RDD[T]
    Definition Classes
    RDD
  27. def distinct(numPartitions: Int)(implicit ord: Ordering[T]): RDD[T]
    Definition Classes
    RDD
  28. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  29. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  30. def filter(f: (T) ⇒ Boolean): RDD[T]
    Definition Classes
    RDD
  31. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  32. def first(): T
    Definition Classes
    RDD
  33. def firstParent[U](implicit arg0: ClassTag[U]): RDD[U]
    Attributes
    protected[spark]
    Definition Classes
    RDD
  34. def flatMap[U](f: (T) ⇒ TraversableOnce[U])(implicit arg0: ClassTag[U]): RDD[U]
    Definition Classes
    RDD
  35. def fold(zeroValue: T)(op: (T, T) ⇒ T): T
    Definition Classes
    RDD
  36. def foreach(f: (T) ⇒ Unit): Unit
    Definition Classes
    RDD
  37. def foreachPartition(f: (Iterator[T]) ⇒ Unit): Unit
    Definition Classes
    RDD
  38. def getCheckpointFile: Option[String]
    Definition Classes
    RDD
  39. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  40. def getDependencies: Seq[Dependency[_]]
    Attributes
    protected
    Definition Classes
    RDD
  41. final def getNumPartitions: Int
    Definition Classes
    RDD
    Annotations
    @Since( "1.6.0" )
  42. def getOutputDeterministicLevel: rdd.DeterministicLevel.Value
    Attributes
    protected
    Definition Classes
    RDD
    Annotations
    @DeveloperApi()
  43. def getPartitions: Array[Partition]
    Definition Classes
    PartitionerAwareUnionRDD → RDD
  44. def getPreferredLocations(s: Partition): Seq[String]
    Definition Classes
    PartitionerAwareUnionRDD2 → PartitionerAwareUnionRDD → RDD
  45. def getResourceProfile(): ResourceProfile
    Definition Classes
    RDD
    Annotations
    @Experimental() @Since( "3.1.0" )
  46. def getStorageLevel: StorageLevel
    Definition Classes
    RDD
  47. def glom(): RDD[Array[T]]
    Definition Classes
    RDD
  48. def groupBy[K](f: (T) ⇒ K, p: Partitioner)(implicit kt: ClassTag[K], ord: Ordering[K]): RDD[(K, Iterable[T])]
    Definition Classes
    RDD
  49. def groupBy[K](f: (T) ⇒ K, numPartitions: Int)(implicit kt: ClassTag[K]): RDD[(K, Iterable[T])]
    Definition Classes
    RDD
  50. def groupBy[K](f: (T) ⇒ K)(implicit kt: ClassTag[K]): RDD[(K, Iterable[T])]
    Definition Classes
    RDD
  51. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  52. val id: Int
    Definition Classes
    RDD
  53. def initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
    Attributes
    protected
    Definition Classes
    Logging
  54. def initializeLogIfNecessary(isInterpreter: Boolean): Unit
    Attributes
    protected
    Definition Classes
    Logging
  55. def intersection(other: RDD[T], numPartitions: Int): RDD[T]
    Definition Classes
    RDD
  56. def intersection(other: RDD[T], partitioner: Partitioner)(implicit ord: Ordering[T]): RDD[T]
    Definition Classes
    RDD
  57. def intersection(other: RDD[T]): RDD[T]
    Definition Classes
    RDD
  58. lazy val isBarrier_: Boolean
    Attributes
    protected
    Definition Classes
    RDD
    Annotations
    @transient()
  59. def isCheckpointed: Boolean
    Definition Classes
    RDD
  60. def isEmpty(): Boolean
    Definition Classes
    RDD
  61. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  62. def isTraceEnabled(): Boolean
    Attributes
    protected
    Definition Classes
    Logging
  63. final def iterator(split: Partition, context: TaskContext): Iterator[T]
    Definition Classes
    RDD
  64. def keyBy[K](f: (T) ⇒ K): RDD[(K, T)]
    Definition Classes
    RDD
  65. def localCheckpoint(): PartitionerAwareUnionRDD2.this.type
    Definition Classes
    RDD
  66. def log: Logger
    Attributes
    protected
    Definition Classes
    Logging
  67. def logDebug(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  68. def logDebug(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  69. def logError(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  70. def logError(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  71. def logInfo(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  72. def logInfo(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  73. def logName: String
    Attributes
    protected
    Definition Classes
    Logging
  74. def logTrace(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  75. def logTrace(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  76. def logWarning(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  77. def logWarning(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  78. def map[U](f: (T) ⇒ U)(implicit arg0: ClassTag[U]): RDD[U]
    Definition Classes
    RDD
  79. def mapPartitions[U](f: (Iterator[T]) ⇒ Iterator[U], preservesPartitioning: Boolean)(implicit arg0: ClassTag[U]): RDD[U]
    Definition Classes
    RDD
  80. def mapPartitionsWithIndex[U](f: (Int, Iterator[T]) ⇒ Iterator[U], preservesPartitioning: Boolean)(implicit arg0: ClassTag[U]): RDD[U]
    Definition Classes
    RDD
  81. def max()(implicit ord: Ordering[T]): T
    Definition Classes
    RDD
  82. def min()(implicit ord: Ordering[T]): T
    Definition Classes
    RDD
  83. var name: String
    Definition Classes
    RDD
  84. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  85. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  86. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  87. def parent[U](j: Int)(implicit arg0: ClassTag[U]): RDD[U]
    Attributes
    protected[spark]
    Definition Classes
    RDD
  88. val partitioner: Option[Partitioner]
    Definition Classes
    PartitionerAwareUnionRDD → RDD
  89. final def partitions: Array[Partition]
    Definition Classes
    RDD
  90. def persist(): PartitionerAwareUnionRDD2.this.type
    Definition Classes
    RDD
  91. def persist(newLevel: StorageLevel): PartitionerAwareUnionRDD2.this.type
    Definition Classes
    RDD
  92. def pipe(command: Seq[String], env: Map[String, String], printPipeContext: ((String) ⇒ Unit) ⇒ Unit, printRDDElement: (T, (String) ⇒ Unit) ⇒ Unit, separateWorkingDir: Boolean, bufferSize: Int, encoding: String): RDD[String]
    Definition Classes
    RDD
  93. def pipe(command: String, env: Map[String, String]): RDD[String]
    Definition Classes
    RDD
  94. def pipe(command: String): RDD[String]
    Definition Classes
    RDD
  95. final def preferredLocations(split: Partition): Seq[String]
    Definition Classes
    RDD
  96. def randomSplit(weights: Array[Double], seed: Long): Array[RDD[T]]
    Definition Classes
    RDD
  97. var rdds: Seq[RDD[T]]
    Definition Classes
    PartitionerAwareUnionRDD
  98. def reduce(f: (T, T) ⇒ T): T
    Definition Classes
    RDD
  99. def repartition(numPartitions: Int)(implicit ord: Ordering[T]): RDD[T]
    Definition Classes
    RDD
  100. def sample(withReplacement: Boolean, fraction: Double, seed: Long): RDD[T]
    Definition Classes
    RDD
  101. def saveAsObjectFile(path: String): Unit
    Definition Classes
    RDD
  102. def saveAsTextFile(path: String, codec: Class[_ <: CompressionCodec]): Unit
    Definition Classes
    RDD
  103. def saveAsTextFile(path: String): Unit
    Definition Classes
    RDD
  104. def setName(_name: String): PartitionerAwareUnionRDD2.this.type
    Definition Classes
    RDD
  105. def sortBy[K](f: (T) ⇒ K, ascending: Boolean, numPartitions: Int)(implicit ord: Ordering[K], ctag: ClassTag[K]): RDD[T]
    Definition Classes
    RDD
  106. def sparkContext: SparkContext
    Definition Classes
    RDD
  107. def subtract(other: RDD[T], p: Partitioner)(implicit ord: Ordering[T]): RDD[T]
    Definition Classes
    RDD
  108. def subtract(other: RDD[T], numPartitions: Int): RDD[T]
    Definition Classes
    RDD
  109. def subtract(other: RDD[T]): RDD[T]
    Definition Classes
    RDD
  110. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  111. def take(num: Int): Array[T]
    Definition Classes
    RDD
  112. def takeOrdered(num: Int)(implicit ord: Ordering[T]): Array[T]
    Definition Classes
    RDD
  113. def takeSample(withReplacement: Boolean, num: Int, seed: Long): Array[T]
    Definition Classes
    RDD
  114. def toDebugString: String
    Definition Classes
    RDD
  115. def toJavaRDD(): JavaRDD[T]
    Definition Classes
    RDD
  116. def toLocalIterator: Iterator[T]
    Definition Classes
    RDD
  117. def toString(): String
    Definition Classes
    RDD → AnyRef → Any
  118. def top(num: Int)(implicit ord: Ordering[T]): Array[T]
    Definition Classes
    RDD
  119. def treeAggregate[U](zeroValue: U, seqOp: (U, T) ⇒ U, combOp: (U, U) ⇒ U, depth: Int, finalAggregateOnExecutor: Boolean)(implicit arg0: ClassTag[U]): U
    Definition Classes
    RDD
  120. def treeAggregate[U](zeroValue: U)(seqOp: (U, T) ⇒ U, combOp: (U, U) ⇒ U, depth: Int)(implicit arg0: ClassTag[U]): U
    Definition Classes
    RDD
  121. def treeReduce(f: (T, T) ⇒ T, depth: Int): T
    Definition Classes
    RDD
  122. def union(other: RDD[T]): RDD[T]
    Definition Classes
    RDD
  123. def unpersist(blocking: Boolean): PartitionerAwareUnionRDD2.this.type
    Definition Classes
    RDD
  124. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  125. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  126. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  127. def withResources(rp: ResourceProfile): PartitionerAwareUnionRDD2.this.type
    Definition Classes
    RDD
    Annotations
    @Experimental() @Since( "3.1.0" )
  128. def zip[U](other: RDD[U])(implicit arg0: ClassTag[U]): RDD[(T, U)]
    Definition Classes
    RDD
  129. def zipPartitions[B, C, D, V](rdd2: RDD[B], rdd3: RDD[C], rdd4: RDD[D])(f: (Iterator[T], Iterator[B], Iterator[C], Iterator[D]) ⇒ Iterator[V])(implicit arg0: ClassTag[B], arg1: ClassTag[C], arg2: ClassTag[D], arg3: ClassTag[V]): RDD[V]
    Definition Classes
    RDD
  130. def zipPartitions[B, C, D, V](rdd2: RDD[B], rdd3: RDD[C], rdd4: RDD[D], preservesPartitioning: Boolean)(f: (Iterator[T], Iterator[B], Iterator[C], Iterator[D]) ⇒ Iterator[V])(implicit arg0: ClassTag[B], arg1: ClassTag[C], arg2: ClassTag[D], arg3: ClassTag[V]): RDD[V]
    Definition Classes
    RDD
  131. def zipPartitions[B, C, V](rdd2: RDD[B], rdd3: RDD[C])(f: (Iterator[T], Iterator[B], Iterator[C]) ⇒ Iterator[V])(implicit arg0: ClassTag[B], arg1: ClassTag[C], arg2: ClassTag[V]): RDD[V]
    Definition Classes
    RDD
  132. def zipPartitions[B, C, V](rdd2: RDD[B], rdd3: RDD[C], preservesPartitioning: Boolean)(f: (Iterator[T], Iterator[B], Iterator[C]) ⇒ Iterator[V])(implicit arg0: ClassTag[B], arg1: ClassTag[C], arg2: ClassTag[V]): RDD[V]
    Definition Classes
    RDD
  133. def zipPartitions[B, V](rdd2: RDD[B])(f: (Iterator[T], Iterator[B]) ⇒ Iterator[V])(implicit arg0: ClassTag[B], arg1: ClassTag[V]): RDD[V]
    Definition Classes
    RDD
  134. def zipPartitions[B, V](rdd2: RDD[B], preservesPartitioning: Boolean)(f: (Iterator[T], Iterator[B]) ⇒ Iterator[V])(implicit arg0: ClassTag[B], arg1: ClassTag[V]): RDD[V]
    Definition Classes
    RDD
  135. def zipWithIndex(): RDD[(T, Long)]
    Definition Classes
    RDD
  136. def zipWithUniqueId(): RDD[(T, Long)]
    Definition Classes
    RDD

Inherited from PartitionerAwareUnionRDD[T]

Inherited from RDD[T]

Inherited from Logging

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped