Apache spark 如何找到指向同一节点的分区?

Apache spark 如何找到指向同一节点的分区?,apache-spark,Apache Spark,假设我有一个HashPartitioner,我用它来划分2个RDD。现在,如果这两个RDD有一些公共值,那么它们将在同一个节点中结束,因为它们被同一个分区器分区。我想做的是找到那些分区 换句话说,当由同一个分区器进行分区时,如何找到最终位于同一节点上的两个RDD分区?我做两件事。首先,我特别喜欢在实验时使用的一个技巧是glom。这是RDD上的一个方法,它将RDD表示为数组[Array]]。每个内部数组表示一个分区。因此,当我在Spark shell或编写快速驱动程序进行实验时,我发现glom有助

假设我有一个HashPartitioner,我用它来划分2个RDD。现在,如果这两个RDD有一些公共值,那么它们将在同一个节点中结束,因为它们被同一个分区器分区。我想做的是找到那些分区


换句话说,当由同一个分区器进行分区时,如何找到最终位于同一节点上的两个RDD分区?

我做两件事。首先,我特别喜欢在实验时使用的一个技巧是glom。这是RDD上的一个方法,它将RDD表示为数组[Array]]。每个内部数组表示一个分区。因此,当我在Spark shell或编写快速驱动程序进行实验时,我发现glom有助于解释分区策略的效果,以及在转换过程中如何维护或更改分区策略


然后,如果我想知道哪个节点有哪些分区,我会咨询我的资源管理器(通常是Mesos、Thread或Spark Standalone)以查看这些详细信息。

我所寻找的方法是zipPartitions。

一个RDD,如果分区良好,应该会出现在每个节点上。@JoeC你是什么意思?我使用相同的HashPartitioner对它们进行分区。相同的值怎么可能在不同的节点中结束?RDD由多个值组成。虽然单个节点上只存在一个值,但RDD将分布在整个集群中。@JoeC您的第一句话不一定是真的。这取决于数据、集群以及您希望实现的目标。事实上,这就是我们有时合并RDD的原因。您好,请详细说明您提到的最后一点,以了解哪个节点有哪些分区,我咨询资源管理器。我想查看此信息,但似乎我遗漏了什么。如何在Thread中的节点上查看特定数据帧的分区?截图会很有帮助。