Я хочу преобразовать RDD в DataFrame и хочу кэшировать результаты 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()
- Если вы не используете функцию
cache
, никакое задание не создается. - Если вы используете
cache
только после созданияorderBy
1 заданий дляcache
: - Если вы используете
cache
только послеparallelize
не создано задание.
Почему cache
создает задание в этом случае?
Как я могу избежать создания задания cache
(кэширование DataFrame и без RDD)?
Изменить: я больше исследовал проблему и обнаружил, что без orderBy("t")
не создается задание. Почему?