缓存嵌套列时,Spark 是不是优化存储
Posted
技术标签:
【中文标题】缓存嵌套列时,Spark 是不是优化存储【英文标题】:Does Spark optimize the storage when a nested column is cached缓存嵌套列时,Spark 是否优化存储 【发布时间】:2018-10-02 15:18:09 【问题描述】:我从 parquet 中读取了一个 DataFrame,我想在选择一些嵌套结构后缓存它。
df.select($"a.b.c" as "c").cache()
我知道整个a
列将从输入中读取(Spark 2.5。应该解决这个问题:SPARK-17636)但我想知道存储是否会更聪明并且只存储选择的结果(所以不是整个a
)。
【问题讨论】:
我不知道你如何检查,好点。 2.4位是? 【参考方案1】:是的,只有在执行操作后才会缓存选择的结果。 select 语句返回一个数据帧,即缓存的数据帧。
请注意,您的代码中尚未发生缓存,因为未采取任何操作。您需要执行一些操作来填充缓存,例如
df.select($"a.b.c" as "c").cache().count()
【讨论】:
以上是关于缓存嵌套列时,Spark 是不是优化存储的主要内容,如果未能解决你的问题,请参考以下文章
(spark-xml) 使用 from_xml 函数解析 xml 列时仅接收 null
从 sparlyr tibble 对象读取数据时访问列时出错