我从镶木地板中读取了一个DataFrame,并希望在选择一些嵌套结构后将其缓存。
df.select($"a.b.c" as "c").cache()
我知道将从输入中读取整个a
列(Spark 2.5。应该解决:SPARK-17636),但是我想知道存储是否会更聪明,仅存储选择的结果(而不是整个a
)。
答案 0 :(得分:0)
是的,执行操作后仅缓存选择结果。 select语句返回一个数据帧,即已缓存的数据帧。
请注意,由于未执行任何操作,因此尚未在代码中进行缓存。您需要执行一些操作来填充缓存,例如
Choose/When