databricks Job Run指标中CPU的严重缺乏,平均不到50% - 这表明我在Spark Workflow中没有足够的任务并行。 我对改善工作的读取并行性特别感兴趣。 我的知识是正确的,关于读取阶段,Spark创造了与桌面上阅读的分区相同数量的任务?此外,当我的桌子没有被分区时,这会是什么样?
我知道默认情况下,配置选项。但是,Spark文档详细介绍了此属性适用于在洗牌阶段发生的广泛转换(即加入和聚集),如果我没错,这些阶段是在初始读取阶段之后出现的。
配置将数据调整为加入或聚合时要使用的分区数。
由于读数既不是联接也不是聚集,我想知道这个默认值(即
spark.sql.shuffle.partitions = 200
)是否将是spark ParalleleSism(即200
任务)的级别来填充我的群集中的200
核那不十分的数据 在未分十个表中,我弄乱了
6*16 = 96
spark.conf.set("spark.sql.files.maxPartitionBytes", "64MB")
控制每个分区读取的最大字节数(默认值:128 MB)以增加火花分区的数量,这增加了任务的数量,因此增加了并行性。 noce,我还没有看到表现的重大结果。
(三角洲)表是否为分区或不阅读修剪的分区,都有一种共同的方法。
spark.sql.shuffle.partitions
在静止数据中没有作用,这与应有的加入等相关。
to不重要的是Pyspark还是Scala Api。
spark.default.parallelism
仅与RDD的SO离开方程式有关。
spark.sql.files.maxPartitionBytes
spark.sql.files.maxPartitionBytes
任务 /并行化的数字将是: