缓存嵌套列时,Spark是否会优化存储

时间:2018-10-02 15:18:09

标签: apache-spark apache-spark-sql parquet

我从镶木地板中读取了一个DataFrame,并希望在选择一些嵌套结构后将其缓存。

df.select($"a.b.c" as "c").cache()

我知道将从输入中读取整个a列(Spark 2.5。应该解决:SPARK-17636),但是我想知道存储是否会更聪明,仅存储选择的结果(而不是整个a)。

1 个答案:

答案 0 :(得分:0)

是的,执行操作后仅缓存选择结果。 select语句返回一个数据帧,即已缓存的数据帧。

请注意,由于未执行任何操作,因此尚未在代码中进行缓存。您需要执行一些操作来填充缓存,例如

Choose/When