Apache spark 如何改变Spark机器学习示例中的持久化级别。

Apache spark 如何改变Spark机器学习示例中的持久化级别。,apache-spark,pyspark,Apache Spark,Pyspark,我正在做一些基准测试来重放一些著名论文的实验 为了做到这一点,我使用了与spark source捆绑在一起的示例,并使用下面的一些命令来执行逻辑回归 ./bin/spark submit--driver memory 6g--conf“spark.memory.fraction=0.6”示例/src/main/python/mllib/logistic_regression.py svm.txt 100 但是,我想更改中间数据的存储级别(如仅限持久内存或仅限磁盘),但找不到解决方法。 我检查了l

我正在做一些基准测试来重放一些著名论文的实验

为了做到这一点,我使用了与spark source捆绑在一起的示例,并使用下面的一些命令来执行逻辑回归

./bin/spark submit--driver memory 6g--conf“spark.memory.fraction=0.6”示例/src/main/python/mllib/logistic_regression.py svm.txt 100

但是,我想更改中间数据的存储级别(如仅限持久内存或仅限磁盘),但找不到解决方法。 我检查了logistic_regression.py、classification.py和common.py,但这些文件不包含任何持久性代码或中间数据缓存

你能告诉我要修复的文件在哪里吗?
提前谢谢

当然有。如果你查看代码。您可以持久化rdd:

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Usage: logistic_regression <file> <iterations>", file=sys.stderr)
        exit(-1)
    sc = SparkContext(appName="PythonLR")
    points = sc.textFile(sys.argv[1]).map(parsePoint)
    # persist rdd
    points.persist(pyspark.StorageLevel.MEMORY_ONLY)
如果名称=“\uuuuu main\uuuuuuuu”:
如果len(sys.argv)!=三:
打印(“用法:逻辑回归”,file=sys.stderr)
出口(-1)
sc=SparkContext(appName=“PythonLR”)
points=sc.textFile(sys.argv[1]).map(parsePoint)
#持续rdd
points.persist(仅限pyspark.StorageLevel.MEMORY_)

噢,原来的代码中根本没有缓存或持久化。我真傻。我以为某个地方有缓存或持久性,因为它说的是类似于////17/07/12 17:36:47警告内存存储:没有足够的空间在内存中缓存rdd_5_24!(到目前为止已计算出29.6 MB)17/07/12 17:36:47信息内存存储:内存使用=441.9 MB(块)+73.9 MB(跨两个任务共享的暂存空间))=515.9 MB。存储限制=516.1 MB。17/07/12 17:36:47警告块管理器:将块rdd_5_24持久化到磁盘。//一次又一次。非常感谢。