2017-11-05 2 views
0

Ich möchte eine RDD initialisieren, die n Anzahl von Paaren von Null enthält. Zum Beispiel: n = 3, wird das erwartete Ergebnis sein:Wie initialisiert man eine RDD mit n Anzahl von Paaren von Null

init: RDD[(Long, Long)] = ((0,0), (0,0), (0,0)) 

Ich brauche n Anzahl der Paare von RDDs zu initialisieren. Es könnte Tausende oder Hunderttausend, sogar Millionen sein. Wenn ich es mit der For-Schleife mit Scala-Code mache, dann wandle es in eine RDD um. Es wird lange dauern.

var init: List[(Long, Long)] = List((0,0)) 
for(a <- 1 to 1000000){ 
    init = init :+ (0L,0L) 
} 
val pairRDD: RDD[(Long, Long)] = sc.parallelize(init) 

Kann jemand mir eine Richtung geben, wie es zu tun

+0

Ich bin neugierig auf den Anwendungsfall. Warum musst du das tun? –

Antwort

4

Sie spark.range verwenden können die rdd parallel von Anfang an zu initialisieren:

val rdd = spark.range(1000000).map(_ => (0, 0)).rdd 
// rdd: org.apache.spark.rdd.RDD[(Int, Int)] = MapPartitionsRDD[13] at rdd at <console>:23 

rdd.take(5) 
// res9: Array[(Int, Int)] = Array((0,0), (0,0), (0,0), (0,0), (0,0)) 
Verwandte Themen