我对以下图片有疑问。我使用 data.persist(StorageLevel.MEMORY_AND_DISK_SER) 缓存我们的原始数据,但令人惊讶的是我们在内存中缓存的速度与我们在磁盘中缓存的速度相同?为什么?我觉得我们在内存中缓存的速度应该比我们缓存在磁盘中的速度快谁可以帮我解决这个问题?
答案 0 :(得分:1)
如果我没错,这是因为Spark没有直接写入磁盘。
对于//Inject your factory and resolve the responses
ngmodule.controller('miController',['miFactory', function(miFactory) {
var scope = this;
var registerSuccess = function (response) {
scope.noticiasList = response;
}
var registerError = function (response) {
alert("Error!");
}
scope.noticiasList = {}
miFactory.GetNoticiasList.then(registerSuccess,registerError);
});
持久性级别,可以放入内存的RDD将保留在那里(与MEMORY_ONLY相同),并且只有当它对内存太大时才会溢出到磁盘。
所以我认为你没有问题,你会看到这些时间是正常的,直到你的记忆已满,你才会看到更长的时间将数据写入磁盘。
答案 1 :(得分:0)
也许您应该尝试使用StorageLevel DISK_ONLY
VS MEMORY_ONLY
并增加输入数据的大小。