comment pyspark diffusion des variables
Je sais qu'il utilise cornichon et d'expédier les choses à travers les nœuds et les garder en mémoire et ainsi de suite. ce que je ne comprends pas est pourquoi la syntaxe à utiliser dans pyspark travail.
def main():
sc = SparkContext()
someValue = rand()
V = sc.broadcast(someValue)
A = sc.parallelize().map(worker)
def worker(element):
element *= V.value
pourquoi le code ci-dessus n'est pas obtenir un "V" non défini plainte? J'ai cherché sur le relatives à la radiodiffusion code source dans pyspark mais n'a pas obtenu la moindre idée.
Vous devez vous connecter pour publier un commentaire.
Je crois que votre problème est tout simplement un Python problème de portée. Si vous essayez de la non-Spark le code Python, il va même erreur avec "en" V "n'est pas défini":
Une des solutions est que vous pouvez déplacer
worker()
être à l'intérieur demain()
(ou sinon, faireV
une variable globale):À partir de documents de recherche de l'Étincelle
Spark: de Clusters de Calcul avec les Ensembles de Travail
Matei Zaharia, Mosharaf Chowdhury, Michael J. Franklin, Scott Shenker, Ion Stoica. HotCloud 2010. En juin 2010.