【问题标题】:Caching dataframes while keeping partitions在保留分区的同时缓存数据帧
【发布时间】:2018-04-12 13:39:13
【问题描述】:

我在 Spark 2.2.0 上,在 EMR 上运行。

我有一个大数据框 df(压缩后的 snappy 文件中大约 40G),它由键 k1k2 分区。

当我通过k1 === v1 或 (k1 === v1 && k2 ===v2`) 查询时,我可以看到它只是查询分区中的文件(大约 2 % 的文件)。

但是,如果我 cachepersist df,突然这些查询会触及 所有 分区,要么炸毁内存,要么太多性能较差。

这是一个很大的惊喜 - 有没有办法进行缓存来保留分区信息

【问题讨论】:

  • 你能展示一些示例代码吗?

标签: apache-spark


【解决方案1】:

这是意料之中的。用于缓存的 Spark 内部列格式与输入格式无关。加载数据后,与原始输入的连接就消失了。

这里的例外是新的数据源 API [SPARK-22389][SQL] data source v2 partitioning reporting interface,它允许持久化分区信息,但它是 2.3 中的新功能,仍处于试验阶段。

【讨论】:

    猜你喜欢
    • 2018-02-21
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多