O cache ordenado do Spark DataFrame cria trabalho indesejado

Desejo converter um RDD em um DataFrame e quero armazenar em cache os resultados do RDD:

from pyspark.sql import *
from pyspark.sql.types import *
import pyspark.sql.functions as fn

schema = StructType([StructField('t', DoubleType()), StructField('value', DoubleType())])

df = spark.createDataFrame(
    sc.parallelize([Row(t=float(i/10), value=float(i*i)) for i in range(1000)], 4), #.cache(),
    schema=schema,
    verifySchema=False
).orderBy("t") #.cache()
Se você não usar umcache função nenhum trabalho é gerado.Se você usarcache somente após oorderBy 1 trabalho é gerado paracache:Se você usarcache somente após oparallelize nenhum trabalho é gerado.

Porquecache gerar um emprego nesse caso? Como evitar a geração de empregos decache (armazenando em cache o DataFrame e sem RDD)?

Editar: Investiguei mais sobre o problema e descobri que sem oorderBy("t") nenhum trabalho é gerado. Por quê?

questionAnswers(1)

yourAnswerToTheQuestion