Я работаю со Spark поверх кластера HDFS. Перед операцией соединения в Java Spark между двумя (ключ, значение) PairRDD я разделяю данные обоих файлов с помощью HashPartitioner, чтобы иметь элементы с одним и тем же ключом на одном компьютере. Это нормально для каждого файла по отдельности, но, как упоминалось в предыдущем посте -set-will-spark-distribut">При создании двух разных RDD Spark Pair с одним и тем же набором ключей будет ли Spark распространять разделы с одним и тем же ключом на одну и ту же машину?, разделенные RDD не обязательно расположены в одном месте, поэтому одни и те же ключи от обоих RDD не могут находиться на одном компьютере.
Есть ли способ заставить искру сделать это? чтобы убедиться, что одни и те же ключи от разных PairRDD находятся на одной машине
Кстати, поскольку мы используем хеш-разбиение, для обоих RDD одни и те же ключи находятся в одном и том же номере раздела, но порядок машин, на которых сохраняются разделы, отличается от одного RDD к другому.
Например, если у нас есть «N» машин, есть ли способ присвоить номер каждой машине (я думаю, искра делает это внутри), а затем просто принудительно записать номер раздела «P» на машину «N по модулю». П'?