Packages

c

org.apache.spark.sql.catalyst.plans.physical

HashClusteredDistribution

case class HashClusteredDistribution(expressions: Seq[Expression], requiredNumPartitions: Option[Int] = None) extends Distribution with Product with Serializable

Represents data where tuples have been clustered according to the hash of the given expressions. Since this distribution relies on HashPartitioning on the physical partitioning, only HashPartitioning (and HashPartitioning in PartitioningCollection) can satisfy this distribution. When requiredNumPartitions is Some(1), SinglePartition is essentially same as HashPartitioning, so it can satisfy this distribution as well.

This distribution is used majorly to represent the requirement of distribution on the stateful operator in Structured Streaming, but this can be used for other cases as well.

NOTE: Each partition in stateful operator initializes state store(s), which are independent with state store(s) in other partitions. Since it is not possible to repartition the data in state store, Spark should make sure the physical partitioning of the stateful operator is unchanged across Spark versions. Violation of this requirement may bring silent correctness issue.

Linear Supertypes
Serializable, Serializable, Product, Equals, Distribution, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. HashClusteredDistribution
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. Distribution
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new HashClusteredDistribution(expressions: Seq[Expression], requiredNumPartitions: Option[Int] = None)

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. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. def createPartitioning(numPartitions: Int): Partitioning

    Creates a default partitioning for this distribution, which can satisfy this distribution while matching the given number of partitions.

    Creates a default partitioning for this distribution, which can satisfy this distribution while matching the given number of partitions.

    Definition Classes
    HashClusteredDistributionDistribution
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. val expressions: Seq[Expression]
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. val requiredNumPartitions: Option[Int]

    The required number of partitions for this distribution.

    The required number of partitions for this distribution. If it's None, then any number of partitions is allowed for this distribution.

    Definition Classes
    HashClusteredDistributionDistribution
  16. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  17. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from Distribution

Inherited from AnyRef

Inherited from Any

Ungrouped