2017-11-05 26 views
0

n個のゼロのペアを含むRDDを初期化したいとします。例えば :n = 3、期待される結果は次のようになりますn個のペアのゼロでRDDを初期化する方法

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

IはRDDSの組のn個を初期化する必要があります。それは数千、数十万、さらには何百万にもなる可能性があります。 forループでScalaコードを使用している場合、それをRDDに変換します。それは長い時間がかかります。

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) 

誰がどのようにそれを

+0

。なぜあなたはこれをする必要がありますか? –

答えて

4

を行うには、最初から並列にRDDを初期化するためにspark.rangeを使用することができます私に方向性を与えることができます:私は、ユースケースについて興味

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)) 
関連する問題