gpt4 book ai didi

scala - 为什么SparkContext.textFile的partition参数不生效?

转载 作者:行者123 更新时间:2023-12-01 21:57:43 24 4
gpt4 key购买 nike

scala> val p=sc.textFile("file:///c:/_home/so-posts.xml", 8) //i've 8 cores
p: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[56] at textFile at <console>:21

scala> p.partitions.size
res33: Int = 729

我预计会打印 8 个任务,但我在 Spark UI 中看到了 729 个任务

编辑:

按照@zero323的建议调用repartition()

scala> p1 = p.repartition(8)
scala> p1.partitions.size
res60: Int = 8
scala> p1.count

即使 Spark-shell 打印 8,我仍然在 Spark UI 中看到 729 个任务。

最佳答案

如果你看一下签名

textFile(path: String, minPartitions: Int = defaultMinPartitions): RDD[String] 

您会看到您使用的参数称为minPartitions,这几乎描述了它的功能。在某些情况下,甚至会被忽略,但这是另一回事。幕后使用的输入格式仍然决定如何计算分割。

在这种特殊情况下,您可能可以使用mapred.min.split.size来增加分割大小(这将在加载期间起作用)或在加载后简单地重新分区(这数据加载后生效)但一般情况下应该没有必要。

关于scala - 为什么SparkContext.textFile的partition参数不生效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34467573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com