A amostra do Spark está muito lenta

Estou tentando executar uma amostra aleatória simples com Scala a partir de uma tabela existente, contendo cerca 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")
)

Mas está demorando muito (~ 5h pelas minhas estimativas).

Informação útil:

Eu tenho ~ 6 trabalhadores. Analisando o número de partições da tabela, recebo:11433.

Não tenho certeza se a proporção de partições / trabalhadores é razoável.

Estou executando o Spark 2.1.0 usando Scala.

Eu tentei:

Removendo o.limit() parte.

Mudandofrac para1.0, 0.1, etc.

Pergunta: como posso torná-lo mais rápido?

melhor,

questionAnswers(2)

yourAnswerToTheQuestion