tao*_*.li 5 bigdata apache-spark
在2014年的spark-summit中,Aaron在他的幻灯片(第17页)中演讲了“更深入的了解Spark内部原理”,展示了将一个阶段分为以下4个任务:

在这里,我想了解有关如何将阶段拆分为任务的三件事?
在上面的示例中,似乎任务号是基于文件号创建的,对吗?
如果我的观点是正确的,那么如果目录名下只有3个文件,那么它将创建3个任务吗?
如果我的观点是正确的2,如果只有一个但很大的文件怎么办?它将这个阶段分为1个任务吗?如果数据来自流数据源怎么办?
非常感谢,我对如何将阶段划分为任务感到困惑。
您可以将整个进程的分区(分割)数量配置为作业的第二个参数,例如,如果我们需要 3 个分区,则可以进行并行化:
a = sc.parallelize(myCollection, 3)
Run Code Online (Sandbox Code Playgroud)
Spark 会将工作划分为相对均匀的大小 (*) 。大文件将被相应地分解 - 您可以通过以下方式查看实际大小:
rdd.partitions.size
Run Code Online (Sandbox Code Playgroud)
所以不,你不会最终导致单个 Worker 长时间处理单个文件。
(*) 如果您的文件非常小,则可能会更改此处理。但无论如何,大文件都会遵循这种模式。
| 归档时间: |
|
| 查看次数: |
2189 次 |
| 最近记录: |