Sto provando a randomizzare l'ordine degli elementi in un RDD. Il mio attuale approccio è quello di comprimere gli elementi con un RDD di interi shuffled, per poi unirmi a quegli interi.Pyspark: shuffle RDD
Tuttavia, pyspark si interrompe con solo 100000000 numeri interi. Sto usando il codice qui sotto
La mia domanda è: c'è un modo migliore per zip con l'indice casuale o in altro modo shuffle?
Ho provato a ordinare con una chiave casuale, che funziona, ma è lento.
def random_indices(n):
"""
return an iterable of random indices in range(0,n)
"""
indices = range(n)
random.shuffle(indices)
return indices
accade quanto segue 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
Grazie, questo è utile. In realtà ho bisogno che le chiavi siano uniche. – Marcin
Avete altri requisiti qui? Perché se no, puoi semplicemente 'zipWithIndex'' zipWithUniqueId' dopo. Aggiunge un'altra trasformazione ma non è estremamente costosa. – zero323
Ho bisogno che le chiavi siano ordinate in modo casuale e uniche. Posso ordinare per chiave casuale, ma ciò si rivela piuttosto lento. – Marcin