Spark 之 partitons

Listing leaf files and directories

分析其并行化

org.apache.spark.util.HadoopFSUtils

复制代码
      sc.parallelize(paths, numParallelism)
        .mapPartitions { pathsEachPartition =>
          val hadoopConf = serializableConfiguration.value
          pathsEachPartition.map { path =>
            val leafFiles = listLeafFiles(
              path = path,
              hadoopConf = hadoopConf,
              filter = filter,
              contextOpt = None, // Can't execute parallel scans on workers
              ignoreMissingFiles = ignoreMissingFiles,
              ignoreLocality = ignoreLocality,
              isRootPath = isRootLevel,
              parallelismThreshold = Int.MaxValue,
              parallelismMax = 0)
            (path, leafFiles)
          }
        }.collect()

    // Set the number of parallelism to prevent following file listing from generating many tasks
    // in case of large #defaultParallelism.
    val numParallelism = Math.min(paths.size, parallelismMax)

parallelismMax 最终由以下配置决定。

复制代码
  val PARALLEL_PARTITION_DISCOVERY_PARALLELISM =
    buildConf("spark.sql.sources.parallelPartitionDiscovery.parallelism")
      .doc("The number of parallelism to list a collection of path recursively, Set the " +
        "number to prevent file listing from generating too many tasks.")
      .version("2.1.1")
      .internal()
      .intConf
      .createWithDefault(10000)
相关推荐
cal_13 分钟前
数据分析中的拉链表解析
大数据·数据挖掘·数据分析
亿信华辰软件16 分钟前
亿信华辰赋能大学教务数据分析实战记
大数据·数据分析
❀always❀1 小时前
深入浅出分布式限流(更新中)
分布式·wpf
qyresearch_1 小时前
全球机械工业设计服务市场:技术驱动下的创新与增长
大数据·人工智能
前端开发与ui设计的老司机2 小时前
大数据时代UI前端的智能化升级:基于机器学习的用户意图预测
大数据·ui
oneslide3 小时前
elasticsearch备份恢复
大数据·elasticsearch·搜索引擎
rui锐rui3 小时前
大数据学习6:Sqoop数据迁移工具
大数据·学习·sqoop
Bug退退退1234 小时前
RabbitMQ 幂等性
分布式·rabbitmq
小牛头#7 小时前
clickhouse 各个引擎适用的场景
大数据·clickhouse·机器学习