【问题标题】:Why SPARK cached RDD spill to disk?为什么 SPARK 缓存 RDD 溢出到磁盘?
【发布时间】:2018-03-15 18:45:54
【问题描述】:

我有下一个代码,我在其中对过滤后的输入数据进行重新分区并将其持久化:

val df = sparkSession.sqlContext.read
      .parquet(path)
      .as[struct1]
      .filter(dateRange(_,lowerBound,upperBound))
      .repartition(nrInputPartitions)
      .persist()

df.count

我希望所有数据都存储在内存中,但我在 Spark UI 中得到以下信息:

存储

Size in Memory   424.2 GB 
Size on Disk     44.1 GB

是不是因为某个partition没有足够的Memory,Spark自动切换到MEMORY_AND_DISK存储级别?

【问题讨论】:

标签: scala apache-spark


【解决方案1】:

是不是因为某个分区没有足够的内存,Spark 自动切换到 MEMORY_AND_DISK 存储级别?

几乎。这是因为它不是RDD,而是Dataset,而Datasets的默认存储级别是MEMORY_AND_DISK。否则,您的怀疑是正确的 - 如果没有足够的内存或需要清除缓存,则数据会进入磁盘(但从技术上讲,它不会溢出)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    相关资源
    最近更新 更多