Core Spark functionality.
Core Spark functionality. org.apache.spark.SparkContext serves as the main entry point to Spark, while org.apache.spark.rdd.RDD is the data type representing a distributed collection, and provides most parallel operations.
In addition, org.apache.spark.rdd.PairRDDFunctions contains operations available only on RDDs
of key-value pairs, such as groupByKey
and join
; org.apache.spark.rdd.DoubleRDDFunctions
contains operations available only on RDDs of Doubles; and
org.apache.spark.rdd.SequenceFileRDDFunctions contains operations available on RDDs that can
be saved as SequenceFiles. These operations are automatically available on any RDD of the right
type (e.g. RDD[(Int, Int)] through implicit conversions.
Java programmers should reference the org.apache.spark.api.java package for Spark programming APIs in Java.
Classes and methods marked with Experimental are user-facing features which have not been officially adopted by the Spark project. These are subject to change or removal in minor releases.
Classes and methods marked with Developer API are intended for advanced users want to extend Spark through lower level interfaces. These are subject to changes or removal in minor releases.
Spark's broadcast variables, used to broadcast immutable datasets to all nodes.
Spark's broadcast variables, used to broadcast immutable datasets to all nodes.
Executor components used with various cluster managers.
Executor components used with various cluster managers. See org.apache.spark.executor.Executor.
IO codecs used for compression.
IO codecs used for compression. See org.apache.spark.io.CompressionCodec.
This package implements Spark's memory management system.
This package implements Spark's memory management system. This system consists of two main components, a JVM-wide memory manager and a per-task manager:
Internally, each of these components have additional abstractions for memory bookkeeping:
Diagrammatically:
+---------------------------+ +-------------+ | MemoryManager | | MemConsumer |----+ | | +-------------+ | +-------------------+ | +---------------------+ | +--->| TaskMemoryManager |----+ | |OnHeapStorageMemPool | | +-------------+ | +-------------------+ | | +---------------------+ | | MemConsumer |----+ | | | +-------------+ +-------------------+ | | +---------------------+ | | TaskMemoryManager |----+ | |OffHeapStorageMemPool| | +-------------------+ | | +---------------------+ | +---->| | * | | +---------------------+ | * | | |OnHeapExecMemPool | | +-------------+ * | | +---------------------+ | | MemConsumer |----+ | | | +-------------+ | +-------------------+ | | +---------------------+ | +--->| TaskMemoryManager |----+ | |OffHeapExecMemPool | | +-------------------+ | +---------------------+ | | | +---------------------------+
There is one implementation of org.apache.spark.memory.MemoryManager:
Support for approximate results.
Support for approximate results. This provides convenient api and also implementation for approximate calculation.
Provides several RDD implementations.
Provides several RDD implementations. See org.apache.spark.rdd.RDD.
Spark's scheduling components.
Spark's scheduling components. This includes the org.apache.spark.scheduler.DAGScheduler
and
lower level org.apache.spark.scheduler.TaskScheduler
.
Pluggable serializers for RDD and shuffle data.
Pluggable serializers for RDD and shuffle data.
Spark utilities.
Spark utilities.