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