2017-01-03 5 views
1

を持ってはIgniteSqlRDDが、私はIgniteRDDのコードを短時間だけ1パーティション

class IgniteSqlRDD[R: ClassTag, T, K, V](
    ic: IgniteContext, 
    cacheName: String, 
    cacheCfg: CacheConfiguration[K, V], 
    qry: Query[T], 
    conv: (T) ⇒ R, 
    keepBinary: Boolean 
) extends IgniteAbstractRDD[R, K, V](ic, cacheName, cacheCfg, keepBinary) { 
    override def compute(split: Partition, context: TaskContext): Iterator[R] = { 
     new IgniteQueryIterator[T, R](ensureCache().query(qry).iterator(), conv) 
    } 

    override protected def getPartitions: Array[Partition] = { 
     Array(new IgnitePartition(0)) 
    } 
} 

私はそれは難しいだけでパーティションの数をコード化している、これは非常に並列性が1であることでパフォーマンスが低下することに気づきました。私はそれがなぜそんなに設計されたのか尋ねる、ありがとう!

答えて

1

IgniteSqlRDDは、aがドライバに完全にフェッチされた結果セットに対してのみ使用される内部実装であるため、このRDDは配布されません。したがって、パーティションは1つだけです。他方、分散されたIgniteキャッシュを表す。

+0

ありがとう@Valentin。 – Tom

関連する問題