Ist es möglich, eine RDD in Python zu senden?Wie RDD in PySpark zu senden?
Ich folge dem Buch "Advanced Analytics mit Spark: Muster zum Lernen von Daten im Maßstab" und in Kapitel 3 muss eine RDD gesendet werden. Ich versuche, den Beispielen zu folgen, indem ich Python anstelle von Scala benutze.
Wie dem auch sei, auch mit diesem einfachen Beispiel habe ich einen Fehler:
my_list = ["a", "d", "c", "b"]
my_list_rdd = sc.parallelize(my_list)
sc.broadcast(my_list_rdd)
Der Fehler Wesen:
"It appears that you are attempting to broadcast an RDD or reference an RDD from an "
Exception: It appears that you are attempting to broadcast an RDD or reference an RDD from an
action or transformation. RDD transformations and actions can only be invoked by the driver, n
ot inside of other transformations; for example, rdd1.map(lambda x: rdd2.values.count() * x) i
s invalid because the values transformation and count action cannot be performed inside of the
rdd1.map transformation. For more information, see SPARK-5063.
Ich verstehe nicht wirklich, was „-Aktion oder Transformation“ der Fehler bezieht zu.
Ich verwende spark-2.1.1-hadoop2.7
.
Wichtig Bearbeiten: das Buch ist korrekt. Ich konnte gerade nicht lesen, dass es keine RDD war, die ausgestrahlt wurde, sondern eine Kartenversion, die mit collectAsMap() erstellt wurde.
Dank!
Schöne Antwort, aber es ist immer wichtig, die Warnung über die Verwendung von sammeln mit großen RDDs, speziell für neue Benutzer. – eliasah