PySpark:我需要重新缓存一个DataFrame吗?

PSN*_*SNR 5 apache-spark apache-spark-sql pyspark spark-dataframe

假设我有一个数据帧:

rdd = sc.textFile(file)
df = sqlContext.createDataFrame(rdd)
df.cache()
Run Code Online (Sandbox Code Playgroud)

我添加一个列

df = df.withColumn('c1', lit(0))

我想df反复使用.那么我需要重新cache()设置数据帧,还是Spark会自动为我做这个?

rog*_*one 7

每次操作/更改数据帧时,都必须重新缓存数据帧.但是,不必重新计算整个数据帧.

df = df.withColumn('c1', lit(0))
Run Code Online (Sandbox Code Playgroud)

在上面的语句中,创建了一个新的数据帧并将其重新分配给变量df.但是这次只计算新列,并从缓存中检索其余列.