Esquema de particionamiento predeterminado en Spark

Cuando ejecuto el siguiente comando:

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 = org.apache.spark.HashPartitioner@a

Dice que hay 10 particiones y la partición se realiza utilizandoHashPartitioner. Pero cuando ejecuto el siguiente 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

Dice que hay 4 particiones y el particionador no está definido. Entonces, ¿cuál es el esquema de particionamiento predeterminado en Spark? / ¿Cómo se particionan los datos en el segundo caso?

Respuestas a la pregunta(1)

Su respuesta a la pregunta