Ich versuche, die Reihenfolge der Elemente in einer RDD randomisieren. Mein aktueller Ansatz besteht darin, die Elemente mit einer RDD aus gemischten Zahlen zu komprimieren, um dann später mit diesen ganzen Zahlen zu verbinden.Pyspark: shuffle RDD
Allerdings fällt pyspark mit nur 100000000 ganzen Zahlen über. Ich verwende den folgenden Code.
Meine Frage ist: Gibt es eine bessere Möglichkeit, entweder mit dem Zufallsindex oder anders Shuffle?
Ich habe versucht, nach einem zufälligen Schlüssel zu sortieren, der funktioniert, aber ist langsam.
def random_indices(n):
"""
return an iterable of random indices in range(0,n)
"""
indices = range(n)
random.shuffle(indices)
return indices
passiert Folgendes in pyspark:
Using Python version 2.7.3 (default, Jun 22 2015 19:33:41)
SparkContext available as sc.
>>> import clean
>>> clean.sc = sc
>>> clean.random_indices(100000000)
Killed
Danke, das ist nützlich. Ich brauche eigentlich die Schlüssel, um einzigartig zu sein. – Marcin
Haben Sie andere Anforderungen hier? Wenn nicht, kannst du einfach 'zipWithIndex'' zipWithUniqueId' hinterher ziehen. Es fügt eine weitere Transformation hinzu, ist aber nicht extrem teuer. – zero323
Ich brauche die Schlüssel, um sowohl zufällig als auch einzigartig zu sein. Ich kann nach einem zufälligen Schlüssel sortieren, aber das ist ziemlich langsam. – Marcin