Работя със Spark върху HDFS клъстер. Преди операция за присъединяване в Java Spark между два (ключ, стойност) PairRDD, разделям данните на двата файла с HashPartitioner, за да има елементи с един и същи ключ на една и съща машина. Това е добре за всеки файл поотделно, но както беше споменато в предишна публикация Когато създадете два различни Spark Pair RDD с един и същ набор ключове, Spark ще разпредели ли дял със същия ключ на една и съща машина?, разделените RDD не са непременно разположени заедно, така че едни и същи ключове от двата RDD може да не са на една и съща машина.
Има ли начин да принудите искра да направи това? за да сте сигурни, че едни и същи ключове от различни PairRDD са на една и съща машина
Между другото, тъй като използваме хеш-разделяне, и за двата RDD едни и същи ключове са в един и същ номер на дял, но редът на машините, на които се записват дялове, е различен от един RDD до друг.
Например, ако имаме 'N' машини, има ли начин да припишем номер на всяка машина (предполагам, че spark прави това вътрешно) и след това просто принуди номерът на дяла 'P' да бъде записан на машината 'N modulo П'?