在http://spark.apache.org/docs/0.8.0/cluster-overview.html上阅读了一些文档后,我得到了一些我想澄清的问题.
以Spark为例:
JavaSparkContext spark = new JavaSparkContext(
new SparkConf().setJars("...").setSparkHome....);
JavaRDD<String> file = spark.textFile("hdfs://...");
// step1
JavaRDD<String> words =
file.flatMap(new FlatMapFunction<String, String>() {
public Iterable<String> call(String s) {
return Arrays.asList(s.split(" "));
}
});
// step2
JavaPairRDD<String, Integer> pairs =
words.map(new PairFunction<String, String, Integer>() {
public Tuple2<String, Integer> call(String s) {
return new Tuple2<String, Integer>(s, 1);
}
});
// step3
JavaPairRDD<String, Integer> counts =
pairs.reduceByKey(new Function2<Integer, Integer>() {
public Integer call(Integer a, Integer b) {
return a + b;
} …Run Code Online (Sandbox Code Playgroud) 在2014年的spark-summit中,Aaron在他的幻灯片(第17页)中演讲了“更深入的了解Spark内部原理”,展示了将一个阶段分为以下4个任务:

在这里,我想了解有关如何将阶段拆分为任务的三件事?
在上面的示例中,似乎任务号是基于文件号创建的,对吗?
如果我的观点是正确的,那么如果目录名下只有3个文件,那么它将创建3个任务吗?
如果我的观点是正确的2,如果只有一个但很大的文件怎么办?它将这个阶段分为1个任务吗?如果数据来自流数据源怎么办?
非常感谢,我对如何将阶段划分为任务感到困惑。
我想了解火花流的基本内容.我有50个Kafka主题分区和5个执行程序,我使用DirectAPI所以没有.RDD分区将为50.如何在5个执行程序上处理此分区?将在每个执行程序上一次激活进程1分区,或者如果执行程序有足够的内存和核心,它将在每个执行程序上并行处理多个分区.
我有一个560 Mb的csv文件,我已经从HDFS读取了csv.当我使用df.rdd.partitions.size它检查文件的分区数时显示4个分区.如果我刚刚检查了使用df.count()作业的总行数,则提交了2个阶段和5个任务的所有阶段.
我需要了解阶段的总数是2,所有阶段的任务总数是5.我已经知道每个分区有1个任务,所以应该是4个.
提前致谢.