El almacenamiento en caché ordenado de Spark DataFrame crea trabajo no deseado
Quiero convertir un RDD en un DataFrame y quiero almacenar en caché los resultados del 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()
Si no usas uncache
función no se genera trabajo.Si utilizacache
solo después delorderBy
Se generan 1 trabajos paracache
:Si utilizacache
solo después delparallelize
No se genera trabajo.Por quecache
generar un trabajo en este caso? ¿Cómo puedo evitar la generación de empleo decache
(almacenamiento en caché del DataFrame y sin RDD)?
Editar: Investigué más sobre el problema y descubrí que sin elorderBy("t")
No se genera trabajo. ¿Por qué?