Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SparkR中的检查点数据帧_R_Apache Spark_Checkpointing - Fatal编程技术网

SparkR中的检查点数据帧

SparkR中的检查点数据帧,r,apache-spark,checkpointing,R,Apache Spark,Checkpointing,我正在使用R/spark循环浏览许多csv数据文件。每个文件中大约1%必须保留(根据特定标准过滤)并与下一个数据文件合并(我使用了union/rbind)。但是,随着循环的运行,随着spark记住以前的所有数据集和filter()-s,数据的沿袭会越来越长 在spark R API中是否有执行检查点的方法?我了解到spark 2.1有数据帧检查点,但这似乎不是R提供的。我们在一个相当大的图(几十亿数据)上使用Scala/GraphX和搜索连接的组件时遇到了同样的问题 我不确定你的特定版本在R中有

我正在使用R/spark循环浏览许多csv数据文件。每个文件中大约1%必须保留(根据特定标准过滤)并与下一个数据文件合并(我使用了
union
/
rbind
)。但是,随着循环的运行,随着spark记住以前的所有数据集和
filter()
-s,数据的沿袭会越来越长


在spark R API中是否有执行检查点的方法?我了解到spark 2.1有数据帧检查点,但这似乎不是R提供的。

我们在一个相当大的图(几十亿数据)上使用Scala/GraphX和搜索连接的组件时遇到了同样的问题

我不确定你的特定版本在R中有什么可用的,但通常的解决方法是通过“保存”数据然后重新加载来打破沿袭。在我们的例子中,我们每15次迭代就破坏一次沿袭:

def refreshGraph[VD: ClassTag, ED: ClassTag](g: Graph[VD, ED], checkpointDir: String, iterationCount: Int, numPartitions: Int): Graph[VD, ED] = {
    val path = checkpointDir + "/iter-" + iterationCount
    saveGraph(g, path)
    g.unpersist()
    loadGraph(path, numPartitions)
}

一个不完整的解决方案/解决方法是将数据帧收集到一个R对象中,然后通过
createDataFrame()
重新并行化。这适用于小数据,但对于较大的数据集,它会变得太慢,并抱怨任务太大。

谢谢,我看到您在每个循环中使用不同的文件。我早些时候用同一个文件尝试了它,所以它不起作用。我将测试并接受你的答案,如果它对我有效。它现在似乎有效:-)尽管我遇到了另一个瓶颈:-(你可以编辑你的第一个问题或链接到你的新问题