/ / Използвайте Spark RDD, за да откриете цена на пътя - apache-spark, rdd

Използвайте Spark RDD за намиране на пътна цена - apache-spark, rdd

Аз съм с Spark за проектиране на TSP решаване. По същество, всеки елемент в RDD е 3-кортеж (id, x, y) където id е индексът на точка и x-y е координатата на тази точка. Като се има предвид RDD съхраняване на поредица от 3-tuple, как мога да се оцени пътната цена на тази последователност? Например, последователността (1, 0, 0), (2, 0, 1), (3, 1, 1) ще даде разходите 1 + 1 = 2 (от първата точка до втората точка и. \ tслед това до третата точка). Изглежда, за да направя това, трябва да знам как точно Spark разделя последователността (RDD). Също така, как мога да оценя разходите между граничните точки на две дялове? Или има някаква проста операция, за да направя това?

Отговори:

0 за отговор № 1

С всяка паралелна обработка, искате да поставите сериозна мисъл в това, което е един елемент от данни, така че само данните, които трябва да бъдат заедно, са заедно.

Така че вместо да има ред, точка евероятно всеки ред трябва да бъде масив от точки, които дефинират път, в който момент изчисляването на общата дължина на пътя с Spark става лесно. Вие просто ще използвате всичко, което обикновено използвате, за да изчислите общата дължина на редица сегменти от линиите, дадени на дефиниращите точки.

Но дори и тогава не е ясно, че имаме нужда отпълна съвкупност от точки. За TSP, кандидат решение е път, който включва всички места, което означава, че ние не трябва да съхраняваме местоположенията на градовете за всяко решение, нито да изчисляваме разстоянията всеки път. , които след това можем да излъчваме, така че всеки работник на Spark да има достъп до него, а след това да търси разстоянията, вместо да ги изчислява.

(Това всъщност е пермутация на идентификатори за местоположение, а не само списък от тях, което може да опрости нещата още повече.)