2017-11-29 4 views

答えて

0

あなたのような何かを行うことができます:それは例えばDS

内の要素にドライバーにイテレータを与えるあなたはtoLocalIterator
を使用することができます

val dfSrc = (1 to 100).map(i => (i,scala.util.Random.nextDouble())).toDF("id","x") 

// define an idnex, e.g. with row_number 
val dsWithRnb = dfSrc 
    .withColumn("rnb",row_number().over(Window.orderBy($"id"))) 
    .cache 

// get rows in chunks of 10 
val N = 10 
(0L to dsWithRnb.count).grouped(N).foreach{batch =>  
    // collect batch 
    val batchData = dsWithRnb.where($"rnb".isin(batch:_*)).collect() 
} 
0

を:

val ds = ... 
ds 
    .cache 
    .toLocalIterator 
    .grouped(N) 
    .map(nRows => ...) 
関連する問題