使用 pyspark foreachpartition 但保留分区特定变量

use pyspark foreachpartition but retain partition specific variables

我有一个要求,每个 spark worker 在迭代之间保留其变量。该变量是一个太大的结构,无法包含在每个 RDD 中。我可以使用 foreachpartition,但没有机制可以为每个分区传递一次某个变量(然后再将其传回)。即使具有相同的 ID,对分区的调用之间也没有连续性。重复广播太贵了。有谁知道解决这个问题的方法吗?

您可以发送这些变量的数组并使用 partition_id 访问连续性的值。