Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 为什么硬代码重新划分值_Apache Spark_Distributed Computing_Partition - Fatal编程技术网

Apache spark 为什么硬代码重新划分值

Apache spark 为什么硬代码重新划分值,apache-spark,distributed-computing,partition,Apache Spark,Distributed Computing,Partition,查看一些示例spark代码,我看到重新分区或合并中的数字是硬编码的: val resDF = df.coalesce(16) 当集群可以在几秒钟内动态更新时,如果此硬编码值变得不相关,那么管理此参数的最佳方法是什么 在示例中,看到硬编码的值是很常见的,所以您不必担心,我的意思是可以随意修改示例。我的意思是分区文档充满了硬编码的值,但这些值只是示例 关于分区数量的经验法则是: 您可能希望他的RDD拥有与 执行器的数量乘以已用内核的数量乘以3(或者可能是4)。 当然,这是一种启发,它实际上取决于你

查看一些示例spark代码,我看到重新分区或合并中的数字是硬编码的:

val resDF = df.coalesce(16)

当集群可以在几秒钟内动态更新时,如果此硬编码值变得不相关,那么管理此参数的最佳方法是什么

在示例中,看到硬编码的值是很常见的,所以您不必担心,我的意思是可以随意修改示例。我的意思是分区文档充满了硬编码的值,但这些值只是示例

关于分区数量的经验法则是:

您可能希望他的RDD拥有与 执行器的数量乘以已用内核的数量乘以3(或者可能是4)。 当然,这是一种启发,它实际上取决于你的 应用程序、数据集和集群配置

但是,请注意,重新分区并不是免费的,因此在一个动态环境中,您必须确保重新分区的开销对于通过此操作获得的收益可以忽略不计


合并和重新分区可能会有不同的成本,正如我在我的中提到的。

您是指内部Spark代码吗?不是您的?抱歉,我是指开发人员提供的示例spark代码。默认情况下,Coalesce不会强制执行洗牌,因此开销比调用
重新分区