Packages

package partitioner

Type Members

  1. final class AdaptiveLevelingPartitioner extends PartitionNamePartitioner with ScalaPartitionNamePartitionerWrapper

    A PartitionerOfKey that uses a precalculated leveling com.here.platform.data.processing.java.leveling.Pattern.

    A PartitionerOfKey that uses a precalculated leveling com.here.platform.data.processing.java.leveling.Pattern.

    Keys are distributed to Spark partitions strictly following the leveling points that the pattern specifies. Keys left not aggregated by the pattern are distributed among a disjoint set of Spark partitions using a fallback partitioner, if specified. Otherwise they are uniformly distributed over the existing partitions.

    The number of partitions used for aggregated keys is fixed and matches the number of leveling points of the pattern.

  2. final class HashPartitioner extends ScalaPartitionerWrapper
  3. final class LocalityAwarePartitioner extends PartitionNamePartitioner with ScalaPartitionNamePartitionerWrapper

    Implements a PartitionerOfKey that is aware of the geographic location of the keys and can therefore put keys that are close to each other in the same Spark partition.

    Implements a PartitionerOfKey that is aware of the geographic location of the keys and can therefore put keys that are close to each other in the same Spark partition. This increases the data locality and speeds up the processing of Spark worker nodes.

    The partitioner detects which com.here.platform.data.processing.java.catalog.partition.Keys are actually HereTiles: in this case keys are grouped at a fixed quadtree level, that is generally higher that the level of the keys (= lower number). Keys that are at a level even higher that the one specified, or keys that are not HERE tiles are partitioned using their hashcode and spread uniformly across all the available partitions. These partitions do not have data locality.

  4. final class NameHashPartitioner extends PartitionNamePartitioner with ScalaPartitionNamePartitionerWrapper

    A PartitionerOfKey that assigns keys to Spark partitions based on the hash code of the partition name.

  5. abstract class PartitionNamePartitioner extends PartitionerOfKey

    A base class for all Partitioners for com.here.platform.data.processing.java.catalog.partition.Key that guarantees that only the partition name of the key is taken into account when calculating the partition.

    A base class for all Partitioners for com.here.platform.data.processing.java.catalog.partition.Key that guarantees that only the partition name of the key is taken into account when calculating the partition. This is important so the processing library can change keys (that also contains catalog and layer) without changing the name and still be sure that the partitioning is not destroyed, improving performances.

  6. trait PartitionerOfKey extends Serializable

    Abstract class implementing in Java a type-safe Spark partitioner.

    Abstract class implementing in Java a type-safe Spark partitioner. This class is usually employed in interfaces of the processing library to better specify the kind of partitioner needed; compiler developers must provide this class.

    A PartitionerOfKey is similar to a Spark org.apache.spark.Partitioner, but the function that has to be implemented to provide the code requires the key of type com.here.platform.data.processing.java.catalog.partition.Key instead of a generic Object required by the Spark org.apache.spark.Partitioner.

    equals and hashCode methods must be implemented properly otherwise Spark may introduce unnecessary shuffle operations or assertions in the data processing algorithms may fail.

Ungrouped