public class SparkContext extends Object implements Logging, ExecutorAllocationClient
Only one SparkContext may be active per JVM. You must stop()
the active SparkContext before
creating a new one. This limitation may eventually be removed; see SPARK-2243 for more details.
Modifier and Type | Class and Description |
---|---|
static class |
SparkContext.DoubleAccumulatorParam$ |
static class |
SparkContext.FloatAccumulatorParam$ |
static class |
SparkContext.IntAccumulatorParam$ |
static class |
SparkContext.LongAccumulatorParam$ |
Constructor and Description |
---|
SparkContext()
Create a SparkContext that loads settings from system properties (for instance, when
launching with ./bin/spark-submit).
|
SparkContext(SparkConf config) |
SparkContext(SparkConf config,
scala.collection.Map<String,scala.collection.Set<SplitInfo>> preferredNodeLocationData)
:: DeveloperApi ::
Alternative constructor for setting preferred locations where Spark will create executors.
|
SparkContext(String master,
String appName)
Alternative constructor that allows setting common Spark properties directly
|
SparkContext(String master,
String appName,
SparkConf conf)
Alternative constructor that allows setting common Spark properties directly
|
SparkContext(String master,
String appName,
String sparkHome)
Alternative constructor that allows setting common Spark properties directly
|
SparkContext(String master,
String appName,
String sparkHome,
scala.collection.Seq<String> jars)
Alternative constructor that allows setting common Spark properties directly
|
SparkContext(String master,
String appName,
String sparkHome,
scala.collection.Seq<String> jars,
scala.collection.Map<String,String> environment,
scala.collection.Map<String,scala.collection.Set<SplitInfo>> preferredNodeLocationData)
Alternative constructor that allows setting common Spark properties directly
|
Modifier and Type | Method and Description |
---|---|
<R,T> Accumulable<R,T> |
accumulable(R initialValue,
AccumulableParam<R,T> param)
Create an
Accumulable shared variable, to which tasks can add values
with += . |
<R,T> Accumulable<R,T> |
accumulable(R initialValue,
String name,
AccumulableParam<R,T> param)
Create an
Accumulable shared variable, with a name for display in the
Spark UI. |
<R,T> Accumulable<R,T> |
accumulableCollection(R initialValue,
scala.Function1<R,scala.collection.generic.Growable<T>> evidence$9,
scala.reflect.ClassTag<R> evidence$10)
Create an accumulator from a "mutable collection" type.
|
<T> Accumulator<T> |
accumulator(T initialValue,
AccumulatorParam<T> param)
Create an
Accumulator variable of a given type, which tasks can "add"
values to using the += method. |
<T> Accumulator<T> |
accumulator(T initialValue,
String name,
AccumulatorParam<T> param)
Create an
Accumulator variable of a given type, with a name for display
in the Spark UI. |
scala.collection.mutable.HashMap<String,Object> |
addedFiles() |
scala.collection.mutable.HashMap<String,Object> |
addedJars() |
void |
addFile(String path)
Add a file to be downloaded with this Spark job on every node.
|
void |
addFile(String path,
boolean recursive)
Add a file to be downloaded with this Spark job on every node.
|
void |
addJar(String path)
Adds a JAR dependency for all tasks to be executed on this SparkContext in the future.
|
void |
addSparkListener(SparkListener listener)
:: DeveloperApi ::
Register a listener to receive up-calls from events that happen during execution.
|
String |
applicationId() |
String |
appName() |
RDD<scala.Tuple2<String,PortableDataStream>> |
binaryFiles(String path,
int minPartitions)
:: Experimental ::
|
RDD<byte[]> |
binaryRecords(String path,
int recordLength,
org.apache.hadoop.conf.Configuration conf)
:: Experimental ::
|
static WritableConverter<Object> |
booleanWritableConverter() |
static org.apache.hadoop.io.BooleanWritable |
boolToBoolWritable(boolean b) |
<T> Broadcast<T> |
broadcast(T value,
scala.reflect.ClassTag<T> evidence$11)
Broadcast a read-only variable to the cluster, returning a
Broadcast object for reading it in distributed functions. |
static org.apache.hadoop.io.BytesWritable |
bytesToBytesWritable(byte[] aob) |
static WritableConverter<byte[]> |
bytesWritableConverter() |
void |
cancelAllJobs()
Cancel all jobs that have been scheduled or are running.
|
void |
cancelJob(int jobId)
Cancel a given job if it's scheduled or running
|
void |
cancelJobGroup(String groupId)
Cancel active jobs for the specified group.
|
void |
cancelStage(int stageId)
Cancel a given stage and all jobs associated with it
|
scala.Option<String> |
checkpointDir() |
<F> F |
clean(F f,
boolean checkSerializable)
Clean a closure to make it ready to serialized and send to tasks
(removes unreferenced variables in $outer's, updates REPL variables)
If checkSerializable is set, clean will also proactively
check to see if f is serializable and throw a SparkException
if not.
|
scala.Option<ContextCleaner> |
cleaner() |
void |
cleanup(long cleanupTime)
Called by MetadataCleaner to clean up the persistentRdds map periodically
|
static void |
clearActiveContext()
Clears the active SparkContext metadata.
|
void |
clearCallSite()
Clear the thread-local property for overriding the call sites
of actions and RDDs.
|
void |
clearFiles()
Clear the job's list of files added by
addFile so that they do not get downloaded to
any new nodes. |
void |
clearJars()
Clear the job's list of JARs added by
addJar so that they do not get downloaded to
any new nodes. |
void |
clearJobGroup()
Clear the current thread's job group ID and its description.
|
SparkConf |
conf() |
SparkEnv |
createSparkEnv(SparkConf conf,
boolean isLocal,
LiveListenerBus listenerBus) |
DAGScheduler |
dagScheduler() |
int |
defaultMinPartitions()
Default min number of partitions for Hadoop RDDs when not given by user
Notice that we use math.min so the "defaultMinPartitions" cannot be higher than 2.
|
int |
defaultMinSplits()
Default min number of partitions for Hadoop RDDs when not given by user
|
int |
defaultParallelism()
Default level of parallelism to use when not given by user (e.g.
|
static DoubleRDDFunctions |
doubleRDDToDoubleRDDFunctions(RDD<Object> rdd) |
static org.apache.hadoop.io.DoubleWritable |
doubleToDoubleWritable(double d) |
static WritableConverter<Object> |
doubleWritableConverter() |
static String |
DRIVER_IDENTIFIER() |
<T> EmptyRDD<T> |
emptyRDD(scala.reflect.ClassTag<T> evidence$8)
Get an RDD that has no partitions or elements.
|
SparkEnv |
env() |
scala.Option<String> |
eventLogCodec() |
scala.Option<String> |
eventLogDir() |
scala.Option<EventLoggingListener> |
eventLogger() |
scala.Option<ExecutorAllocationManager> |
executorAllocationManager() |
scala.collection.mutable.HashMap<String,String> |
executorEnvs() |
int |
executorMemory() |
scala.collection.Seq<String> |
files() |
static org.apache.hadoop.io.FloatWritable |
floatToFloatWritable(float f) |
static WritableConverter<Object> |
floatWritableConverter() |
scala.collection.Seq<Schedulable> |
getAllPools()
:: DeveloperApi ::
Return pools for fair scheduler
|
CallSite |
getCallSite()
Capture the current user callsite and return a formatted version for printing.
|
scala.Option<String> |
getCheckpointDir() |
SparkConf |
getConf()
Return a copy of this SparkContext's configuration.
|
scala.collection.Map<String,scala.Tuple2<Object,Object>> |
getExecutorMemoryStatus()
Return a map from the slave to the max memory available for caching and the remaining
memory available for caching.
|
StorageStatus[] |
getExecutorStorageStatus()
:: DeveloperApi ::
Return information about blocks stored in all of the slaves
|
scala.Option<ThreadStackTrace[]> |
getExecutorThreadDump(String executorId)
Called by the web UI to obtain executor thread dumps.
|
java.util.Properties |
getLocalProperties() |
String |
getLocalProperty(String key)
Get a local property set in this thread, or null if it is missing.
|
scala.collection.Map<Object,RDD<?>> |
getPersistentRDDs()
Returns an immutable map of RDDs that have marked themselves as persistent via cache() call.
|
scala.Option<Schedulable> |
getPoolForName(String pool)
:: DeveloperApi ::
Return the pool associated with the given name, if one exists
|
scala.collection.Seq<TaskLocation> |
getPreferredLocs(RDD<?> rdd,
int partition)
Gets the locality information associated with the partition in a particular rdd
|
RDDInfo[] |
getRDDStorageInfo()
:: DeveloperApi ::
Return information about what RDDs are cached, if they are in mem or on disk, how much space
they take, etc.
|
scala.Enumeration.Value |
getSchedulingMode()
Return current scheduling mode
|
scala.Option<String> |
getSparkHome()
Get Spark's home location from either a value set through the constructor,
or the spark.home Java property, or the SPARK_HOME environment variable
(in that order of preference).
|
org.apache.hadoop.conf.Configuration |
hadoopConfiguration()
A default Hadoop Configuration for the Hadoop code (e.g.
|
<K,V> RDD<scala.Tuple2<K,V>> |
hadoopFile(String path,
Class<? extends org.apache.hadoop.mapred.InputFormat<K,V>> inputFormatClass,
Class<K> keyClass,
Class<V> valueClass,
int minPartitions)
Get an RDD for a Hadoop file with an arbitrary InputFormat
|
<K,V,F extends org.apache.hadoop.mapred.InputFormat<K,V>> |
hadoopFile(String path,
scala.reflect.ClassTag<K> km,
scala.reflect.ClassTag<V> vm,
scala.reflect.ClassTag<F> fm)
Smarter version of hadoopFile() that uses class tags to figure out the classes of keys,
values and the InputFormat so that users don't need to pass them directly.
|
<K,V,F extends org.apache.hadoop.mapred.InputFormat<K,V>> |
hadoopFile(String path,
int minPartitions,
scala.reflect.ClassTag<K> km,
scala.reflect.ClassTag<V> vm,
scala.reflect.ClassTag<F> fm)
Smarter version of hadoopFile() that uses class tags to figure out the classes of keys,
values and the InputFormat so that users don't need to pass them directly.
|
<K,V> RDD<scala.Tuple2<K,V>> |
hadoopRDD(org.apache.hadoop.mapred.JobConf conf,
Class<? extends org.apache.hadoop.mapred.InputFormat<K,V>> inputFormatClass,
Class<K> keyClass,
Class<V> valueClass,
int minPartitions)
Get an RDD for a Hadoop-readable dataset from a Hadoop JobConf given its InputFormat and other
necessary info (e.g.
|
void |
initLocalProperties() |
static org.apache.hadoop.io.IntWritable |
intToIntWritable(int i) |
static WritableConverter<Object> |
intWritableConverter() |
boolean |
isEventLogEnabled() |
boolean |
isLocal() |
static scala.Option<String> |
jarOfClass(Class<?> cls)
Find the JAR from which a given class was loaded, to make it easy for users to pass
their JARs to SparkContext.
|
static scala.Option<String> |
jarOfObject(Object obj)
Find the JAR that contains the class of a particular object, to make it easy for users
to pass their JARs to SparkContext.
|
scala.collection.Seq<String> |
jars() |
JobProgressListener |
jobProgressListener() |
boolean |
killExecutor(String executorId)
:: DeveloperApi ::
Request that cluster manager the kill the specified executor.
|
boolean |
killExecutors(scala.collection.Seq<String> executorIds)
:: DeveloperApi ::
Request that the cluster manager kill the specified executors.
|
LiveListenerBus |
listenerBus() |
static org.apache.hadoop.io.LongWritable |
longToLongWritable(long l) |
static WritableConverter<Object> |
longWritableConverter() |
<T> RDD<T> |
makeRDD(scala.collection.Seq<T> seq,
int numSlices,
scala.reflect.ClassTag<T> evidence$2)
Distribute a local Scala collection to form an RDD.
|
<T> RDD<T> |
makeRDD(scala.collection.Seq<scala.Tuple2<T,scala.collection.Seq<String>>> seq,
scala.reflect.ClassTag<T> evidence$3)
Distribute a local Scala collection to form an RDD, with one or more
location preferences (hostnames of Spark nodes) for each object.
|
static void |
markPartiallyConstructed(SparkContext sc,
boolean allowMultipleContexts)
Called at the beginning of the SparkContext constructor to ensure that no SparkContext is
running.
|
String |
master() |
MetadataCleaner |
metadataCleaner() |
MetricsSystem |
metricsSystem() |
<K,V,F extends org.apache.hadoop.mapreduce.InputFormat<K,V>> |
newAPIHadoopFile(String path,
Class<F> fClass,
Class<K> kClass,
Class<V> vClass,
org.apache.hadoop.conf.Configuration conf)
Get an RDD for a given Hadoop file with an arbitrary new API InputFormat
and extra configuration options to pass to the input format.
|
<K,V,F extends org.apache.hadoop.mapreduce.InputFormat<K,V>> |
newAPIHadoopFile(String path,
scala.reflect.ClassTag<K> km,
scala.reflect.ClassTag<V> vm,
scala.reflect.ClassTag<F> fm)
Get an RDD for a Hadoop file with an arbitrary new API InputFormat.
|
<K,V,F extends org.apache.hadoop.mapreduce.InputFormat<K,V>> |
newAPIHadoopRDD(org.apache.hadoop.conf.Configuration conf,
Class<F> fClass,
Class<K> kClass,
Class<V> vClass)
Get an RDD for a given Hadoop file with an arbitrary new API InputFormat
and extra configuration options to pass to the input format.
|
int |
newRddId()
Register a new RDD, returning its RDD ID
|
int |
newShuffleId() |
static <T> DoubleRDDFunctions |
numericRDDToDoubleRDDFunctions(RDD<T> rdd,
scala.math.Numeric<T> num) |
<T> RDD<T> |
objectFile(String path,
int minPartitions,
scala.reflect.ClassTag<T> evidence$4)
Load an RDD saved as a SequenceFile containing serialized objects, with NullWritable keys and
BytesWritable values that contain a serialized partition.
|
<T> RDD<T> |
parallelize(scala.collection.Seq<T> seq,
int numSlices,
scala.reflect.ClassTag<T> evidence$1)
Distribute a local Scala collection to form an RDD.
|
TimeStampedWeakValueHashMap<Object,RDD<?>> |
persistentRdds() |
void |
persistRDD(RDD<?> rdd)
Register an RDD to be persisted in memory and/or disk storage
|
scala.collection.Map<String,scala.collection.Set<SplitInfo>> |
preferredNodeLocationData() |
scala.Option<ConsoleProgressBar> |
progressBar() |
static <T> AsyncRDDActions<T> |
rddToAsyncRDDActions(RDD<T> rdd,
scala.reflect.ClassTag<T> evidence$19) |
static <K,V> OrderedRDDFunctions<K,V,scala.Tuple2<K,V>> |
rddToOrderedRDDFunctions(RDD<scala.Tuple2<K,V>> rdd,
scala.math.Ordering<K> evidence$24,
scala.reflect.ClassTag<K> evidence$25,
scala.reflect.ClassTag<V> evidence$26) |
static <K,V> PairRDDFunctions<K,V> |
rddToPairRDDFunctions(RDD<scala.Tuple2<K,V>> rdd,
scala.reflect.ClassTag<K> kt,
scala.reflect.ClassTag<V> vt,
scala.math.Ordering<K> ord) |
static <K,V> SequenceFileRDDFunctions<K,V> |
rddToSequenceFileRDDFunctions(RDD<scala.Tuple2<K,V>> rdd,
scala.Function1<K,org.apache.hadoop.io.Writable> evidence$20,
scala.reflect.ClassTag<K> evidence$21,
scala.Function1<V,org.apache.hadoop.io.Writable> evidence$22,
scala.reflect.ClassTag<V> evidence$23) |
boolean |
requestExecutors(int numAdditionalExecutors)
:: DeveloperApi ::
Request an additional number of executors from the cluster manager.
|
boolean |
requestTotalExecutors(int numExecutors)
Express a preference to the cluster manager for a given total number of executors.
|
<T,U,R> PartialResult<R> |
runApproximateJob(RDD<T> rdd,
scala.Function2<TaskContext,scala.collection.Iterator<T>,U> func,
ApproximateEvaluator<U,R> evaluator,
long timeout)
:: DeveloperApi ::
Run a job that can return approximate results.
|
<T,U> Object |
runJob(RDD<T> rdd,
scala.Function1<scala.collection.Iterator<T>,U> func,
scala.reflect.ClassTag<U> evidence$16)
Run a job on all partitions in an RDD and return the results in an array.
|
<T,U> void |
runJob(RDD<T> rdd,
scala.Function1<scala.collection.Iterator<T>,U> processPartition,
scala.Function2<Object,U,scala.runtime.BoxedUnit> resultHandler,
scala.reflect.ClassTag<U> evidence$18)
Run a job on all partitions in an RDD and pass the results to a handler function.
|
<T,U> Object |
runJob(RDD<T> rdd,
scala.Function1<scala.collection.Iterator<T>,U> func,
scala.collection.Seq<Object> partitions,
boolean allowLocal,
scala.reflect.ClassTag<U> evidence$14)
Run a job on a given set of partitions of an RDD, but take a function of type
Iterator[T] => U instead of (TaskContext, Iterator[T]) => U . |
<T,U> Object |
runJob(RDD<T> rdd,
scala.Function2<TaskContext,scala.collection.Iterator<T>,U> func,
scala.reflect.ClassTag<U> evidence$15)
Run a job on all partitions in an RDD and return the results in an array.
|
<T,U> void |
runJob(RDD<T> rdd,
scala.Function2<TaskContext,scala.collection.Iterator<T>,U> processPartition,
scala.Function2<Object,U,scala.runtime.BoxedUnit> resultHandler,
scala.reflect.ClassTag<U> evidence$17)
Run a job on all partitions in an RDD and pass the results to a handler function.
|
<T,U> Object |
runJob(RDD<T> rdd,
scala.Function2<TaskContext,scala.collection.Iterator<T>,U> func,
scala.collection.Seq<Object> partitions,
boolean allowLocal,
scala.reflect.ClassTag<U> evidence$13)
Run a function on a given set of partitions in an RDD and return the results as an array.
|
<T,U> void |
runJob(RDD<T> rdd,
scala.Function2<TaskContext,scala.collection.Iterator<T>,U> func,
scala.collection.Seq<Object> partitions,
boolean allowLocal,
scala.Function2<Object,U,scala.runtime.BoxedUnit> resultHandler,
scala.reflect.ClassTag<U> evidence$12)
Run a function on a given set of partitions in an RDD and pass the results to the given
handler function.
|
SchedulerBackend |
schedulerBackend() |
<K,V> RDD<scala.Tuple2<K,V>> |
sequenceFile(String path,
Class<K> keyClass,
Class<V> valueClass)
Get an RDD for a Hadoop SequenceFile with given key and value types.
|
<K,V> RDD<scala.Tuple2<K,V>> |
sequenceFile(String path,
Class<K> keyClass,
Class<V> valueClass,
int minPartitions)
Get an RDD for a Hadoop SequenceFile with given key and value types.
|
<K,V> RDD<scala.Tuple2<K,V>> |
sequenceFile(String path,
int minPartitions,
scala.reflect.ClassTag<K> km,
scala.reflect.ClassTag<V> vm,
scala.Function0<WritableConverter<K>> kcf,
scala.Function0<WritableConverter<V>> vcf)
Version of sequenceFile() for types implicitly convertible to Writables through a
WritableConverter.
|
static void |
setActiveContext(SparkContext sc,
boolean allowMultipleContexts)
Called at the end of the SparkContext constructor to ensure that no other SparkContext has
raced with this constructor and started.
|
void |
setCallSite(CallSite callSite)
Set the thread-local property for overriding the call sites
of actions and RDDs.
|
void |
setCallSite(String shortCallSite)
Set the thread-local property for overriding the call sites
of actions and RDDs.
|
void |
setCheckpointDir(String directory)
Set the directory under which RDDs are going to be checkpointed.
|
void |
setJobDescription(String value)
Set a human readable description of the current job.
|
void |
setJobGroup(String groupId,
String description,
boolean interruptOnCancel)
Assigns a group ID to all the jobs started by this thread until the group ID is set to a
different value or cleared.
|
void |
setLocalProperties(java.util.Properties props) |
void |
setLocalProperty(String key,
String value)
Set a local property that affects jobs submitted from this thread, such as the
Spark fair scheduler pool.
|
static String |
SPARK_JOB_DESCRIPTION() |
static String |
SPARK_JOB_GROUP_ID() |
static String |
SPARK_JOB_INTERRUPT_ON_CANCEL() |
String |
sparkUser() |
long |
startTime() |
SparkStatusTracker |
statusTracker() |
void |
stop()
Shut down the SparkContext.
|
static org.apache.hadoop.io.Text |
stringToText(String s) |
static WritableConverter<String> |
stringWritableConverter() |
<T,U,R> SimpleFutureAction<R> |
submitJob(RDD<T> rdd,
scala.Function1<scala.collection.Iterator<T>,U> processPartition,
scala.collection.Seq<Object> partitions,
scala.Function2<Object,U,scala.runtime.BoxedUnit> resultHandler,
scala.Function0<R> resultFunc)
:: Experimental ::
Submit a job for execution and return a FutureJob holding the result.
|
String |
tachyonFolderName() |
TaskScheduler |
taskScheduler() |
RDD<String> |
textFile(String path,
int minPartitions)
Read a text file from HDFS, a local file system (available on all nodes), or any
Hadoop-supported file system URI, and return it as an RDD of Strings.
|
scala.Option<SparkUI> |
ui() |
<T> RDD<T> |
union(RDD<T> first,
scala.collection.Seq<RDD<T>> rest,
scala.reflect.ClassTag<T> evidence$7)
Build the union of a list of RDDs passed as variable-length arguments.
|
<T> RDD<T> |
union(scala.collection.Seq<RDD<T>> rdds,
scala.reflect.ClassTag<T> evidence$6)
Build the union of a list of RDDs.
|
void |
unpersistRDD(int rddId,
boolean blocking)
Unpersist an RDD from memory and/or disk storage
|
static SparkConf |
updatedConf(SparkConf conf,
String master,
String appName,
String sparkHome,
scala.collection.Seq<String> jars,
scala.collection.Map<String,String> environment)
Creates a modified version of a SparkConf with the parameters that can be passed separately
to SparkContext, to make it easier to write SparkContext's constructors.
|
String |
version()
The version of Spark on which this application is running.
|
RDD<scala.Tuple2<String,String>> |
wholeTextFiles(String path,
int minPartitions)
Read a directory of text files from HDFS, a local file system (available on all nodes), or any
Hadoop-supported file system URI.
|
static <T extends org.apache.hadoop.io.Writable> |
writableWritableConverter() |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
initializeIfNecessary, initializeLogging, isTraceEnabled, log_, log, logDebug, logDebug, logError, logError, logInfo, logInfo, logName, logTrace, logTrace, logWarning, logWarning
public SparkContext(SparkConf config)
public SparkContext()
public SparkContext(SparkConf config, scala.collection.Map<String,scala.collection.Set<SplitInfo>> preferredNodeLocationData)
preferredNodeLocationData
- used in YARN mode to select nodes to launch containers on.
Can be generated using org.apache.spark.scheduler.InputFormatInfo.computePreferredLocations
from a list of input files or InputFormats for the application.public SparkContext(String master, String appName, SparkConf conf)
master
- Cluster URL to connect to (e.g. mesos://host:port, spark://host:port, local[4]).appName
- A name for your application, to display on the cluster web UIconf
- a SparkConf
object specifying other Spark parameterspublic SparkContext(String master, String appName, String sparkHome, scala.collection.Seq<String> jars, scala.collection.Map<String,String> environment, scala.collection.Map<String,scala.collection.Set<SplitInfo>> preferredNodeLocationData)
master
- Cluster URL to connect to (e.g. mesos://host:port, spark://host:port, local[4]).appName
- A name for your application, to display on the cluster web UI.sparkHome
- Location where Spark is installed on cluster nodes.jars
- Collection of JARs to send to the cluster. These can be paths on the local file
system or HDFS, HTTP, HTTPS, or FTP URLs.environment
- Environment variables to set on worker nodes.public SparkContext(String master, String appName)
master
- Cluster URL to connect to (e.g. mesos://host:port, spark://host:port, local[4]).appName
- A name for your application, to display on the cluster web UI.public SparkContext(String master, String appName, String sparkHome)
master
- Cluster URL to connect to (e.g. mesos://host:port, spark://host:port, local[4]).appName
- A name for your application, to display on the cluster web UI.sparkHome
- Location where Spark is installed on cluster nodes.public SparkContext(String master, String appName, String sparkHome, scala.collection.Seq<String> jars)
master
- Cluster URL to connect to (e.g. mesos://host:port, spark://host:port, local[4]).appName
- A name for your application, to display on the cluster web UI.sparkHome
- Location where Spark is installed on cluster nodes.jars
- Collection of JARs to send to the cluster. These can be paths on the local file
system or HDFS, HTTP, HTTPS, or FTP URLs.public static void markPartiallyConstructed(SparkContext sc, boolean allowMultipleContexts)
public static void setActiveContext(SparkContext sc, boolean allowMultipleContexts)
public static void clearActiveContext()
SparkContext#stop()
. It's
also called in unit tests to prevent a flood of warnings from test suites that don't / can't
properly clean up their SparkContexts.public static String SPARK_JOB_DESCRIPTION()
public static String SPARK_JOB_GROUP_ID()
public static String SPARK_JOB_INTERRUPT_ON_CANCEL()
public static String DRIVER_IDENTIFIER()
public static <K,V> PairRDDFunctions<K,V> rddToPairRDDFunctions(RDD<scala.Tuple2<K,V>> rdd, scala.reflect.ClassTag<K> kt, scala.reflect.ClassTag<V> vt, scala.math.Ordering<K> ord)
public static <T> AsyncRDDActions<T> rddToAsyncRDDActions(RDD<T> rdd, scala.reflect.ClassTag<T> evidence$19)
public static <K,V> SequenceFileRDDFunctions<K,V> rddToSequenceFileRDDFunctions(RDD<scala.Tuple2<K,V>> rdd, scala.Function1<K,org.apache.hadoop.io.Writable> evidence$20, scala.reflect.ClassTag<K> evidence$21, scala.Function1<V,org.apache.hadoop.io.Writable> evidence$22, scala.reflect.ClassTag<V> evidence$23)
public static <K,V> OrderedRDDFunctions<K,V,scala.Tuple2<K,V>> rddToOrderedRDDFunctions(RDD<scala.Tuple2<K,V>> rdd, scala.math.Ordering<K> evidence$24, scala.reflect.ClassTag<K> evidence$25, scala.reflect.ClassTag<V> evidence$26)
public static DoubleRDDFunctions doubleRDDToDoubleRDDFunctions(RDD<Object> rdd)
public static <T> DoubleRDDFunctions numericRDDToDoubleRDDFunctions(RDD<T> rdd, scala.math.Numeric<T> num)
public static org.apache.hadoop.io.IntWritable intToIntWritable(int i)
public static org.apache.hadoop.io.LongWritable longToLongWritable(long l)
public static org.apache.hadoop.io.FloatWritable floatToFloatWritable(float f)
public static org.apache.hadoop.io.DoubleWritable doubleToDoubleWritable(double d)
public static org.apache.hadoop.io.BooleanWritable boolToBoolWritable(boolean b)
public static org.apache.hadoop.io.BytesWritable bytesToBytesWritable(byte[] aob)
public static org.apache.hadoop.io.Text stringToText(String s)
public static WritableConverter<Object> intWritableConverter()
public static WritableConverter<Object> longWritableConverter()
public static WritableConverter<Object> doubleWritableConverter()
public static WritableConverter<Object> floatWritableConverter()
public static WritableConverter<Object> booleanWritableConverter()
public static WritableConverter<byte[]> bytesWritableConverter()
public static WritableConverter<String> stringWritableConverter()
public static <T extends org.apache.hadoop.io.Writable> WritableConverter<T> writableWritableConverter()
public static scala.Option<String> jarOfClass(Class<?> cls)
public static scala.Option<String> jarOfObject(Object obj)
public static SparkConf updatedConf(SparkConf conf, String master, String appName, String sparkHome, scala.collection.Seq<String> jars, scala.collection.Map<String,String> environment)
public scala.collection.Map<String,scala.collection.Set<SplitInfo>> preferredNodeLocationData()
public long startTime()
public SparkConf conf()
public SparkConf getConf()
public scala.collection.Seq<String> jars()
public scala.collection.Seq<String> files()
public String master()
public String appName()
public boolean isEventLogEnabled()
public scala.Option<String> eventLogDir()
public scala.Option<String> eventLogCodec()
public String tachyonFolderName()
public boolean isLocal()
public LiveListenerBus listenerBus()
public SparkEnv createSparkEnv(SparkConf conf, boolean isLocal, LiveListenerBus listenerBus)
public SparkEnv env()
public scala.collection.mutable.HashMap<String,Object> addedFiles()
public scala.collection.mutable.HashMap<String,Object> addedJars()
public TimeStampedWeakValueHashMap<Object,RDD<?>> persistentRdds()
public MetadataCleaner metadataCleaner()
public JobProgressListener jobProgressListener()
public SparkStatusTracker statusTracker()
public scala.Option<ConsoleProgressBar> progressBar()
public scala.Option<SparkUI> ui()
public org.apache.hadoop.conf.Configuration hadoopConfiguration()
'''Note:''' As it will be reused in all Hadoop RDDs, it's better not to modify it unless you plan to set some global configurations for all Hadoop RDDs.
public int executorMemory()
public scala.collection.mutable.HashMap<String,String> executorEnvs()
public String sparkUser()
public SchedulerBackend schedulerBackend()
public TaskScheduler taskScheduler()
public DAGScheduler dagScheduler()
public String applicationId()
public MetricsSystem metricsSystem()
public scala.Option<EventLoggingListener> eventLogger()
public scala.Option<ExecutorAllocationManager> executorAllocationManager()
public scala.Option<ContextCleaner> cleaner()
public scala.Option<String> checkpointDir()
public scala.Option<ThreadStackTrace[]> getExecutorThreadDump(String executorId)
public java.util.Properties getLocalProperties()
public void setLocalProperties(java.util.Properties props)
public void initLocalProperties()
public void setLocalProperty(String key, String value)
public String getLocalProperty(String key)
org.apache.spark.SparkContext.setLocalProperty
.public void setJobDescription(String value)
public void setJobGroup(String groupId, String description, boolean interruptOnCancel)
Often, a unit of execution in an application consists of multiple Spark actions or jobs. Application programmers can use this method to group all those jobs together and give a group description. Once set, the Spark web UI will associate such jobs with this group.
The application can also use org.apache.spark.SparkContext.cancelJobGroup
to cancel all
running jobs in this group. For example,
// In the main thread:
sc.setJobGroup("some_job_to_cancel", "some job description")
sc.parallelize(1 to 10000, 2).map { i => Thread.sleep(10); i }.count()
// In a separate thread:
sc.cancelJobGroup("some_job_to_cancel")
If interruptOnCancel is set to true for the job group, then job cancellation will result in Thread.interrupt() being called on the job's executor threads. This is useful to help ensure that the tasks are actually stopped in a timely manner, but is off by default due to HDFS-1208, where HDFS may respond to Thread.interrupt() by marking nodes as dead.
public void clearJobGroup()
public <T> RDD<T> parallelize(scala.collection.Seq<T> seq, int numSlices, scala.reflect.ClassTag<T> evidence$1)
public <T> RDD<T> makeRDD(scala.collection.Seq<T> seq, int numSlices, scala.reflect.ClassTag<T> evidence$2)
This method is identical to parallelize
.
public <T> RDD<T> makeRDD(scala.collection.Seq<scala.Tuple2<T,scala.collection.Seq<String>>> seq, scala.reflect.ClassTag<T> evidence$3)
public RDD<String> textFile(String path, int minPartitions)
public RDD<scala.Tuple2<String,String>> wholeTextFiles(String path, int minPartitions)
For example, if you have the following files:
hdfs://a-hdfs-path/part-00000
hdfs://a-hdfs-path/part-00001
...
hdfs://a-hdfs-path/part-nnnnn
Do val rdd = sparkContext.wholeTextFile("hdfs://a-hdfs-path")
,
then rdd
contains
(a-hdfs-path/part-00000, its content)
(a-hdfs-path/part-00001, its content)
...
(a-hdfs-path/part-nnnnn, its content)
minPartitions
- A suggestion value of the minimal splitting number for input data.public RDD<scala.Tuple2<String,PortableDataStream>> binaryFiles(String path, int minPartitions)
Get an RDD for a Hadoop-readable dataset as PortableDataStream for each file (useful for binary data)
For example, if you have the following files:
hdfs://a-hdfs-path/part-00000
hdfs://a-hdfs-path/part-00001
...
hdfs://a-hdfs-path/part-nnnnn
Do
val rdd = sparkContext.dataStreamFiles("hdfs://a-hdfs-path")
,
then rdd
contains
(a-hdfs-path/part-00000, its content)
(a-hdfs-path/part-00001, its content)
...
(a-hdfs-path/part-nnnnn, its content)
minPartitions
- A suggestion value of the minimal splitting number for input data.
public RDD<byte[]> binaryRecords(String path, int recordLength, org.apache.hadoop.conf.Configuration conf)
Load data from a flat binary file, assuming the length of each record is constant.
'''Note:''' We ensure that the byte array for each record in the resulting RDD has the provided record length.
path
- Directory to the input data filesrecordLength
- The length at which to split the recordspublic <K,V> RDD<scala.Tuple2<K,V>> hadoopRDD(org.apache.hadoop.mapred.JobConf conf, Class<? extends org.apache.hadoop.mapred.InputFormat<K,V>> inputFormatClass, Class<K> keyClass, Class<V> valueClass, int minPartitions)
org.apache.hadoop.mapred
).
conf
- JobConf for setting up the dataset. Note: This will be put into a Broadcast.
Therefore if you plan to reuse this conf to create multiple RDDs, you need to make
sure you won't modify the conf. A safe approach is always creating a new conf for
a new RDD.inputFormatClass
- Class of the InputFormatkeyClass
- Class of the keysvalueClass
- Class of the valuesminPartitions
- Minimum number of Hadoop Splits to generate.
'''Note:''' Because Hadoop's RecordReader class re-uses the same Writable object for each
record, directly caching the returned RDD or directly passing it to an aggregation or shuffle
operation will create many references to the same object.
If you plan to directly cache, sort, or aggregate Hadoop writable objects, you should first
copy them using a map
function.
public <K,V> RDD<scala.Tuple2<K,V>> hadoopFile(String path, Class<? extends org.apache.hadoop.mapred.InputFormat<K,V>> inputFormatClass, Class<K> keyClass, Class<V> valueClass, int minPartitions)
'''Note:''' Because Hadoop's RecordReader class re-uses the same Writable object for each
record, directly caching the returned RDD or directly passing it to an aggregation or shuffle
operation will create many references to the same object.
If you plan to directly cache, sort, or aggregate Hadoop writable objects, you should first
copy them using a map
function.
public <K,V,F extends org.apache.hadoop.mapred.InputFormat<K,V>> RDD<scala.Tuple2<K,V>> hadoopFile(String path, int minPartitions, scala.reflect.ClassTag<K> km, scala.reflect.ClassTag<V> vm, scala.reflect.ClassTag<F> fm)
val file = sparkContext.hadoopFile[LongWritable, Text, TextInputFormat](path, minPartitions)
'''Note:''' Because Hadoop's RecordReader class re-uses the same Writable object for each
record, directly caching the returned RDD or directly passing it to an aggregation or shuffle
operation will create many references to the same object.
If you plan to directly cache, sort, or aggregate Hadoop writable objects, you should first
copy them using a map
function.
public <K,V,F extends org.apache.hadoop.mapred.InputFormat<K,V>> RDD<scala.Tuple2<K,V>> hadoopFile(String path, scala.reflect.ClassTag<K> km, scala.reflect.ClassTag<V> vm, scala.reflect.ClassTag<F> fm)
val file = sparkContext.hadoopFile[LongWritable, Text, TextInputFormat](path)
'''Note:''' Because Hadoop's RecordReader class re-uses the same Writable object for each
record, directly caching the returned RDD or directly passing it to an aggregation or shuffle
operation will create many references to the same object.
If you plan to directly cache, sort, or aggregate Hadoop writable objects, you should first
copy them using a map
function.
public <K,V,F extends org.apache.hadoop.mapreduce.InputFormat<K,V>> RDD<scala.Tuple2<K,V>> newAPIHadoopFile(String path, scala.reflect.ClassTag<K> km, scala.reflect.ClassTag<V> vm, scala.reflect.ClassTag<F> fm)
public <K,V,F extends org.apache.hadoop.mapreduce.InputFormat<K,V>> RDD<scala.Tuple2<K,V>> newAPIHadoopFile(String path, Class<F> fClass, Class<K> kClass, Class<V> vClass, org.apache.hadoop.conf.Configuration conf)
'''Note:''' Because Hadoop's RecordReader class re-uses the same Writable object for each
record, directly caching the returned RDD or directly passing it to an aggregation or shuffle
operation will create many references to the same object.
If you plan to directly cache, sort, or aggregate Hadoop writable objects, you should first
copy them using a map
function.
public <K,V,F extends org.apache.hadoop.mapreduce.InputFormat<K,V>> RDD<scala.Tuple2<K,V>> newAPIHadoopRDD(org.apache.hadoop.conf.Configuration conf, Class<F> fClass, Class<K> kClass, Class<V> vClass)
conf
- Configuration for setting up the dataset. Note: This will be put into a Broadcast.
Therefore if you plan to reuse this conf to create multiple RDDs, you need to make
sure you won't modify the conf. A safe approach is always creating a new conf for
a new RDD.fClass
- Class of the InputFormatkClass
- Class of the keysvClass
- Class of the values
'''Note:''' Because Hadoop's RecordReader class re-uses the same Writable object for each
record, directly caching the returned RDD or directly passing it to an aggregation or shuffle
operation will create many references to the same object.
If you plan to directly cache, sort, or aggregate Hadoop writable objects, you should first
copy them using a map
function.
public <K,V> RDD<scala.Tuple2<K,V>> sequenceFile(String path, Class<K> keyClass, Class<V> valueClass, int minPartitions)
'''Note:''' Because Hadoop's RecordReader class re-uses the same Writable object for each
record, directly caching the returned RDD or directly passing it to an aggregation or shuffle
operation will create many references to the same object.
If you plan to directly cache, sort, or aggregate Hadoop writable objects, you should first
copy them using a map
function.
public <K,V> RDD<scala.Tuple2<K,V>> sequenceFile(String path, Class<K> keyClass, Class<V> valueClass)
'''Note:''' Because Hadoop's RecordReader class re-uses the same Writable object for each
record, directly caching the returned RDD or directly passing it to an aggregation or shuffle
operation will create many references to the same object.
If you plan to directly cache, sort, or aggregate Hadoop writable objects, you should first
copy them using a map
function.
public <K,V> RDD<scala.Tuple2<K,V>> sequenceFile(String path, int minPartitions, scala.reflect.ClassTag<K> km, scala.reflect.ClassTag<V> vm, scala.Function0<WritableConverter<K>> kcf, scala.Function0<WritableConverter<V>> vcf)
sparkContext.sequenceFile[String, Int](path, ...)
WritableConverters are provided in a somewhat strange way (by an implicit function) to support both subclasses of Writable and types for which we define a converter (e.g. Int to IntWritable). The most natural thing would've been to have implicit objects for the converters, but then we couldn't have an object for every subclass of Writable (you can't have a parameterized singleton object). We use functions instead to create a new converter for the appropriate type. In addition, we pass the converter a ClassTag of its type to allow it to figure out the Writable class to use in the subclass case.
'''Note:''' Because Hadoop's RecordReader class re-uses the same Writable object for each
record, directly caching the returned RDD or directly passing it to an aggregation or shuffle
operation will create many references to the same object.
If you plan to directly cache, sort, or aggregate Hadoop writable objects, you should first
copy them using a map
function.
public <T> RDD<T> objectFile(String path, int minPartitions, scala.reflect.ClassTag<T> evidence$4)
public <T> RDD<T> union(scala.collection.Seq<RDD<T>> rdds, scala.reflect.ClassTag<T> evidence$6)
public <T> RDD<T> union(RDD<T> first, scala.collection.Seq<RDD<T>> rest, scala.reflect.ClassTag<T> evidence$7)
public <T> EmptyRDD<T> emptyRDD(scala.reflect.ClassTag<T> evidence$8)
public <T> Accumulator<T> accumulator(T initialValue, AccumulatorParam<T> param)
Accumulator
variable of a given type, which tasks can "add"
values to using the +=
method. Only the driver can access the accumulator's value
.public <T> Accumulator<T> accumulator(T initialValue, String name, AccumulatorParam<T> param)
Accumulator
variable of a given type, with a name for display
in the Spark UI. Tasks can "add" values to the accumulator using the +=
method. Only the
driver can access the accumulator's value
.public <R,T> Accumulable<R,T> accumulable(R initialValue, AccumulableParam<R,T> param)
Accumulable
shared variable, to which tasks can add values
with +=
. Only the driver can access the accumuable's value
.public <R,T> Accumulable<R,T> accumulable(R initialValue, String name, AccumulableParam<R,T> param)
Accumulable
shared variable, with a name for display in the
Spark UI. Tasks can add values to the accumuable using the +=
operator. Only the driver can
access the accumuable's value
.public <R,T> Accumulable<R,T> accumulableCollection(R initialValue, scala.Function1<R,scala.collection.generic.Growable<T>> evidence$9, scala.reflect.ClassTag<R> evidence$10)
Growable and TraversableOnce are the standard APIs that guarantee += and ++=, implemented by standard mutable collections. So you can use this with mutable Map, Set, etc.
public <T> Broadcast<T> broadcast(T value, scala.reflect.ClassTag<T> evidence$11)
Broadcast
object for reading it in distributed functions.
The variable will be sent to each cluster only once.public void addFile(String path)
path
passed can be either a local file, a file in HDFS (or other Hadoop-supported
filesystems), or an HTTP, HTTPS or FTP URI. To access the file in Spark jobs,
use SparkFiles.get(fileName)
to find its download location.public void addFile(String path, boolean recursive)
path
passed can be either a local file, a file in HDFS (or other Hadoop-supported
filesystems), or an HTTP, HTTPS or FTP URI. To access the file in Spark jobs,
use SparkFiles.get(fileName)
to find its download location.
A directory can be given if the recursive option is set to true. Currently directories are only supported for Hadoop-supported filesystems.
public void addSparkListener(SparkListener listener)
public boolean requestTotalExecutors(int numExecutors)
requestTotalExecutors
in interface ExecutorAllocationClient
public boolean requestExecutors(int numAdditionalExecutors)
requestExecutors
in interface ExecutorAllocationClient
public boolean killExecutors(scala.collection.Seq<String> executorIds)
killExecutors
in interface ExecutorAllocationClient
public boolean killExecutor(String executorId)
killExecutor
in interface ExecutorAllocationClient
public String version()
public scala.collection.Map<String,scala.Tuple2<Object,Object>> getExecutorMemoryStatus()
public RDDInfo[] getRDDStorageInfo()
public scala.collection.Map<Object,RDD<?>> getPersistentRDDs()
public StorageStatus[] getExecutorStorageStatus()
public scala.collection.Seq<Schedulable> getAllPools()
public scala.Option<Schedulable> getPoolForName(String pool)
public scala.Enumeration.Value getSchedulingMode()
public void clearFiles()
addFile
so that they do not get downloaded to
any new nodes.public scala.collection.Seq<TaskLocation> getPreferredLocs(RDD<?> rdd, int partition)
rdd
- of interestpartition
- to be looked up for localitypublic void persistRDD(RDD<?> rdd)
public void unpersistRDD(int rddId, boolean blocking)
public void addJar(String path)
path
passed can be either a local file, a file in HDFS (or other Hadoop-supported
filesystems), an HTTP, HTTPS or FTP URI, or local:/path for a file on every worker node.public void clearJars()
addJar
so that they do not get downloaded to
any new nodes.public void stop()
public scala.Option<String> getSparkHome()
public void setCallSite(String shortCallSite)
public void setCallSite(CallSite callSite)
public void clearCallSite()
public CallSite getCallSite()
setCallSite()
, this will return the user's version.public <T,U> void runJob(RDD<T> rdd, scala.Function2<TaskContext,scala.collection.Iterator<T>,U> func, scala.collection.Seq<Object> partitions, boolean allowLocal, scala.Function2<Object,U,scala.runtime.BoxedUnit> resultHandler, scala.reflect.ClassTag<U> evidence$12)
public <T,U> Object runJob(RDD<T> rdd, scala.Function2<TaskContext,scala.collection.Iterator<T>,U> func, scala.collection.Seq<Object> partitions, boolean allowLocal, scala.reflect.ClassTag<U> evidence$13)
public <T,U> Object runJob(RDD<T> rdd, scala.Function1<scala.collection.Iterator<T>,U> func, scala.collection.Seq<Object> partitions, boolean allowLocal, scala.reflect.ClassTag<U> evidence$14)
Iterator[T] => U
instead of (TaskContext, Iterator[T]) => U
.public <T,U> Object runJob(RDD<T> rdd, scala.Function2<TaskContext,scala.collection.Iterator<T>,U> func, scala.reflect.ClassTag<U> evidence$15)
public <T,U> Object runJob(RDD<T> rdd, scala.Function1<scala.collection.Iterator<T>,U> func, scala.reflect.ClassTag<U> evidence$16)
public <T,U> void runJob(RDD<T> rdd, scala.Function2<TaskContext,scala.collection.Iterator<T>,U> processPartition, scala.Function2<Object,U,scala.runtime.BoxedUnit> resultHandler, scala.reflect.ClassTag<U> evidence$17)
public <T,U> void runJob(RDD<T> rdd, scala.Function1<scala.collection.Iterator<T>,U> processPartition, scala.Function2<Object,U,scala.runtime.BoxedUnit> resultHandler, scala.reflect.ClassTag<U> evidence$18)
public <T,U,R> PartialResult<R> runApproximateJob(RDD<T> rdd, scala.Function2<TaskContext,scala.collection.Iterator<T>,U> func, ApproximateEvaluator<U,R> evaluator, long timeout)
public <T,U,R> SimpleFutureAction<R> submitJob(RDD<T> rdd, scala.Function1<scala.collection.Iterator<T>,U> processPartition, scala.collection.Seq<Object> partitions, scala.Function2<Object,U,scala.runtime.BoxedUnit> resultHandler, scala.Function0<R> resultFunc)
public void cancelJobGroup(String groupId)
org.apache.spark.SparkContext.setJobGroup
for more information.public void cancelAllJobs()
public void cancelJob(int jobId)
public void cancelStage(int stageId)
public <F> F clean(F f, boolean checkSerializable)
f
- the closure to cleancheckSerializable
- whether or not to immediately check f for serializabilitySparkException
- if checkSerializable is set but f is not
serializablepublic void setCheckpointDir(String directory)
public scala.Option<String> getCheckpointDir()
public int defaultParallelism()
public int defaultMinSplits()
public int defaultMinPartitions()
public int newShuffleId()
public int newRddId()
public void cleanup(long cleanupTime)