in einem funkenProgramm zuzuweisen I 2 RDDs zuerst initialisiert und verwenden dann die 2. RDD in einer while-Schleife wie folgt:Wie ein festen UUID Wert in RDD
var nodes = sc.parallelize(ArrayBuffer(1, 2, 3, 4, 5))
var node_GroupIDs = nodes.map(x=>(x, UUID.randomUUID()))
var i = 0
while (i < 10) {
node_GroupIDs.foreach(println)
i += 1
}
I in verschiedenen Iterationen, die für einen bestimmten Knoten gefunden ID Die entsprechende Gruppen-ID hat einen anderen Wert. Es scheint, dass in jeder Iteration die RDD erneut initialisiert worden war. Wie kann man in diesem Fall einem Knoten einen festen UUID-Wert zuweisen?
Wenn Sie es zwischenspeichern, ist es nicht immer noch möglich, es neu berechnet wird, sagen, wenn Sie einen Testamentsvollstrecker zu verlieren? –
Caching der RDD scheint nicht die beste Option. @DavidGriffin hat Recht. Wenn Sie einen Executor verlieren, wird die Map erneut ausgeführt und eine neue UUID generiert. Mir ist immer noch nicht klar, warum 10 RDDs mit derselben UUID gedruckt werden sollen. Ich nehme an, das ist Teil eines größeren Codes. Kannst du erklären, was deine Absicht ist? – PinoSan
Was ist in Kombination mit 'RDD.checkpoint()'? –