Scala ApacheSpark:什么时候不使用mapPartition和foreachPartition?
我知道,当我们想要为一组RDD而不是单个RDD元素初始化一些资源时,理想情况下应该使用mapPartition和foreachPartition。例如,在为每个数据分区初始化JDBC连接的情况下。但是,在某些情况下,我们不应该使用它们中的任何一个,而应该使用普通的map()和foreach()转换和操作。当您编写使用mapPartition或foreachPartition的Spark作业时,您可以只修改分区数据本身,也可以分别迭代分区数据。作为参数传递的匿名函数将在执行器上执行,因此没有可行的方法来执行从一个特定执行器调用所有节点的代码,例如:df.reduceByKey。此代码只能从驱动程序节点执行。因此,只能从驱动程序代码访问数据帧、数据集和spark会话 请详细讨论这个问题和可能的解决方案Scala ApacheSpark:什么时候不使用mapPartition和foreachPartition?,scala,apache-spark,apache-spark-sql,spark-dataframe,Scala,Apache Spark,Apache Spark Sql,Spark Dataframe,我知道,当我们想要为一组RDD而不是单个RDD元素初始化一些资源时,理想情况下应该使用mapPartition和foreachPartition。例如,在为每个数据分区初始化JDBC连接的情况下。但是,在某些情况下,我们不应该使用它们中的任何一个,而应该使用普通的map()和foreach()转换和操作。当您编写使用mapPartition或foreachPartition的Spark作业时,您可以只修改分区数据本身,也可以分别迭代分区数据。作为参数传递的匿名函数将在执行器上执行,因此没有可行的