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

时间:2017-02-05 01:34:11

标签: apache-spark pyspark apache-spark-sql spark-dataframe

说我有一个数据框:

rdd = sc.textFile(file)
df = sqlContext.createDataFrame(rdd)
df.cache()

我添加一列

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

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

1 个答案:

答案 0 :(得分:7)

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

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

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