火花如何读取未分会的三角洲表?

问题描述 投票:0回答:1
i我观察到我的

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

是相关的,如果可以争论parquest文件。
apache-spark pyspark databricks azure-databricks delta-lake
1个回答
0
投票
想象一个带有5个文件的三角洲表,1个非常大的= x尺寸和4个尺寸x/5的较小文件,并且该应用具有2个可用的vcores。

spark.sql.files.maxPartitionBytes

= x/2
    到达:
  1. 任务 /并行化的数字将是:
    
  2. 4对于适合X/2尺寸的较小X/5的较小文件
  3. 2对于大小X的大文件,分为x/2
  4. 
    
  5. 2任务可以同时运行以读取文件。
  6. 	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.