假设我有一个数据帧:
rdd = sc.textFile(file)
df = sqlContext.createDataFrame(rdd)
df.cache()
我添加了一列
df = df.withColumn('c1', lit(0))
我想反复使用df
。那么我是否需要重新cache()
数据帧,还是 Spark 会自动为我执行此操作?
每次操作/更改数据帧时,都必须再次重新缓存数据帧。但是,不必重新计算整个数据帧。
df = df.withColumn('c1', lit(0))
在上面的语句中,将创建一个新的数据帧并将其重新分配给变量 df
。但这次只计算新列,其余列从缓存中检索。