Ich habe einige ziemlich große Listen, auf die ich innerhalb jedes Objekts zugreifen muss, das meine RDD umfasst. Nachdem ich diese Listen ausgestrahlt habe, sollte ich also die Broadcast-Variable oder broadcast.value() in jedes der Objekte einfügen? Ich möchte nicht, dass die Liste für jedes Objekt repliziert wird, sondern dass jedes Objekt die Listen verwenden kann. Mein Code sieht in etwa wie folgt aus:Sollte ich die Broadcast-Variable oder broadcast.value() in meine RDD [benutzerdefiniertes Objekt] übergeben?
class foo(object):
def __init__(self, number, broadcasted)
self.NUMBER = number
self.BROADCASTED = broadcasted
broadcasted_list = sc.broadcast([a, b, c, ...])
so sollte ich die RDD als
rdd = sc.parallelize([1, 2, 3]).map(lambda x: foo(x, broadcasted_list))
oder
rdd = sc.parallelize([1, 2, 3]).map(lambda x: foo(x, broadcasted_list.value()))
Dank erstellen!
Haben Sie es herausgefunden? Hat meine Lösung für Sie funktioniert? –
yup danke! Ich ging mit nur die Broadcast-Variable übergeben und den Wert auf den Verweis auf das Objekt aufrufen, wenn ich es brauchte. – AStack41