Quando eseguire sotto comando:predefinito Schema di partizionamento in Spark
scala> val rdd = sc.parallelize(List((1,2),(3,4),(3,6)),4).partitionBy(new HashPartitioner(10)).persist()
rdd: org.apache.spark.rdd.RDD[(Int, Int)] = ShuffledRDD[10] at partitionBy at <console>:22
scala> rdd.partitions.size
res9: Int = 10
scala> rdd.partitioner.isDefined
res10: Boolean = true
scala> rdd.partitioner.get
res11: org.apache.spark.Partitioner = [email protected]
Si dice che ci sono 10 le partizioni e partizionamento avviene tramite HashPartitioner
. Ma quando eseguo sotto il comando:
scala> val rdd = sc.parallelize(List((1,2),(3,4),(3,6)),4)
...
scala> rdd.partitions.size
res6: Int = 4
scala> rdd.partitioner.isDefined
res8: Boolean = false
Si dice che ci siano 4 partizioni e il partizionatore non sia definito. Quindi, Qual è lo schema di partizionamento predefinito in Spark?/Come vengono suddivisi i dati nel secondo caso?
OK !! Grazie per le spiegazioni .. Ho controllato che i dati vengano tagliati usando gli indici in un caso successivo (o calcolando l'inizio e la fine dividendolo con il numero di partizioni) –