La muestra de chispas es demasiado lenta

Estoy tratando de ejecutar una muestra aleatoria simple con Scala de una tabla existente, que contiene alrededor de 100e6 registros.

import org.apache.spark.sql.SaveMode

val nSamples = 3e5.toInt
val frac = 1e-5
val table = spark.table("db_name.table_name").sample(false, frac).limit(nSamples)
(table
  .write
  .mode(SaveMode.Overwrite)
  .saveAsTable("db_name.new_name")
)

Pero está tardando demasiado (~ 5h según mis estimaciones).

Información útil:

Tengo ~ 6 trabajadores. Al analizar el número de particiones de la tabla obtengo:11433.

No estoy seguro de si la proporción de particiones / trabajadores es razonable.

Estoy ejecutando Spark 2.1.0 usando Scala.

Yo he tratado:

La eliminación de la.limit() parte.

Cambiandofrac a1.0, 0.1etc.

Pregunta: ¿cómo puedo hacerlo más rápido?

Mejor,

Respuestas a la pregunta(2)

Su respuesta a la pregunta