Apache spark spark如何确定任务的数量?

Apache spark spark如何确定任务的数量?,apache-spark,task,apache-spark-dataset,Apache Spark,Task,Apache Spark Dataset,我对Spark在读取大量文本文件时创建的大量任务感到有点困惑 代码如下: val files = List["path/to/files/a/23", "path/to/files/b/", "path/to/files/c/0"] val ds = spark.sqlContext.read.textFile(files :_*) ds.count() 每个文件夹a、b、c包含24个文件,因此自读取完整的b文件夹以来,总

我对Spark在读取大量文本文件时创建的大量任务感到有点困惑

代码如下:

val files = List["path/to/files/a/23", 
                 "path/to/files/b/", 
                 "path/to/files/c/0"]
val ds = spark.sqlContext.read.textFile(files :_*)
ds.count()
每个文件夹
a、b、c
包含24个文件,因此自读取完整的
b
文件夹以来,总共有26个文件。现在,如果我执行一个操作,比如
.count()
,Spark UI会显示有24个任务。然而,我认为有26个任务,每个分区1个任务,每个文件1个分区


如果有人能给我更多关于实际发生的事情的见解,那就太好了。

文本文件是用Hadoop格式加载的。分区的数量取决于:

  • mapreduce.input.fileinputformat.split.minsize
  • mapreduce.input.fileinputformat.split.maxsize
  • minPartitions
    参数(如果提供)
  • 块大小
  • 压缩(如果存在)(可拆分/不可拆分)

您可以在这里找到计算示例:

作业中使用的核心总数是多少?您是否设置了任何配置?以便于理解。你能发布你的代码和spark用户界面的详细信息吗?@SimonSchiff我使用了8个内核,但据我所知,我没有配置。然而,这似乎是正确的方向。我试着在一台更大的机器上执行代码,它完成了预期的26项任务。