【发布时间】:2016-04-08 22:55:44
【问题描述】:
我正在使用 SparkSQL 进行一些计算。每 5 分钟就会有一个新的数据帧进来。我需要对最近一周的数据帧进行计算。
这意味着我需要将 12*24*7 = 2016 个数据帧合并为一个大数据帧并运行计算。
大小将超出我的 RAM 大小。我的 Spark 集群中的所有节点总共有 128G 内存,这还不够。
所以我想知道如果数据框太大而无法放入内存会发生什么? spark会暂时将其交换到磁盘吗?我需要明确要求 spark 交换还是自动完成?
【问题讨论】:
-
可能存在内存问题和长沿袭。
-
你确实需要为这种工作设置检查点。这项工作很可能会失败。为了回答您的问题,Spark 会自动将数据写入磁盘 (tmp),您不需要设置它,默认情况下它是打开的(尽管您可以将其关闭)。 spark.apache.org/docs/latest/configuration.html
-
@GameOfThrows 由于内存不足,代码确实失败了。我发布了一个新问题来描述我的情况。 stackoverflow.com/questions/36545306/…你能帮忙看看,给点建议吗?
-
@eliasah 谢谢。我的代码确实遇到了 OutOfMemory 问题。你能对这种模式给出一些建议吗?
-
很抱歉我不能回答这个问题!太宽泛了,什么都可以。打开一个描述您的问题的新问题。在我看来大卫已经回答了这个问题,因为你已经接受了它
标签: apache-spark