当前位置: 首页 > 知识库问答 >
问题:

Spark在Hadooprdd上花了很长时间:输入分裂

梁烨烨
2023-03-14

18/02/07 04:44:51 INFO TaskSetManager:在1025毫秒内完成localhost(executor driver)上阶段1.0(TID 7)中的任务6.0(7/307)

为什么Spark要做这么多'hadooprdd:Input拆分‘?这样做的目的是什么?我如何加快或摆脱这个过程?

代码如下:

import org.apache.spark.SparkContext
import org.apache.spark.mllib.evaluation.MulticlassMetrics 

import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.spark.mllib.classification.LogisticRegressionWithSGD
import org.apache.spark.mllib.evaluation.BinaryClassificationMetrics
import org.apache.spark.mllib.optimization.L1Updater
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.util.MLUtils
import scala.compat.Platform._ 


object test {

    def main(args: Array[String]) {

        val nnodes = 1
        val epochs = 3

        val conf = new SparkConf().setAppName("Test Name")
        val sc = new SparkContext(conf)

        val t0=currentTime
        val train = MLUtils.loadLibSVMFile(sc, "/ebs2/preprocess/xaa",  262165, 4)
        val test = MLUtils.loadLibSVMFile(sc,  "/ebs2/preprocess/xab",   262165, 4)
        val t1=currentTime;
    
        println("START")
        val lrAlg = new LogisticRegressionWithSGD()
        lrAlg.optimizer.setMiniBatchFraction(10.0/40000000.0)
        lrAlg.optimizer.setNumIterations(12000000)
        lrAlg.optimizer.setStepSize(0.01)

        val model = lrAlg.run(train)        


        model.clearThreshold()
        val scoreAndLabels = test.map { point =>
              val score = model.predict(point.features)
              (score, point.label)
        }

        val metrics = new BinaryClassificationMetrics(scoreAndLabels)
        val auROC = metrics.areaUnderROC()
        println("Area under ROC = " + auROC)
     }
}

共有1个答案

长孙明知
2023-03-14

我通过跑步解决了速度问题

train=train.coalesce(1)train.cache()

通过将内存增加到总共64场演出。以前,由于内存不足,Spark可能无法正确缓存。

 类似资料:
  • 当我想启动我的jboss AS 7服务器时,需要很长时间才能开始。我正在使用netbean 7.4 这个jboss AS 7实际上是如何运行的?我应该从standalone.bat文件启动服务器吗?还是从netbean? 10: 34:15303信息[org.jboss.modules]jboss模块版本1.1.1。GA 10:34:15422信息[org.jboss.msc]jboss msc版

  • 在此RDD上应用筛选器,并将相关行的范围移出:filter 在此RDD上应用筛选器,并将相关行的范围移出:filter 加入RDD:join 应用map阶段计算投资:map 应用GroupBy阶段根据所需视图对数据进行分组:GroupBy 应用map阶段来按照上述步骤中实现的分组聚合数据(例如跨时间段查看数据),并根据需要收集的resultset创建新对象:map 收集结果:收集 因此,如果用户想

  • 我正在尝试训练一个模型,在我看来,与其他数据集相比,该模型花费的时间太长,因为完成一个历元需要大约1小时和20分钟。我认为问题是因为数据集没有存储在ram上,但我不确定这一点。 代码如下: 型号: 顺序模型 2个卷积层,32个神经元,激活=relu 1个卷积层,64个神经元,激活=relu 平整和致密层,激活=relu 退出0.5 具有sigmoid激活的输出层(致密) Adam optimize

  • 给出结果需要20多秒,而在mongo控制台中同样的查询需要不到一秒。 为什么会出现这种情况,如何减少速度差距?

  • 问题内容: 我将Node.js与MongoDB结合使用,也将Monk用于数据库访问。我有以下代码: 关于此代码,我有两个问题: 我看到执行时间,并且“文件已保存!” 首先输入字符串,然后在控制台中看到朋友的名字。这是为什么?我不应该先看名字然后再看执行时间吗?是否因为Node.js的异步特性? 名称在控制台中的打印速度非常慢,速度就像两秒钟内出现一个名称一样。为什么这么慢?有没有办法使过程更快?

  • 问题内容: 我已经阅读了许多示例,并最终使用以下代码从Java程序内部执行了命令行命令。 我已经用一个简单的ls命令测试了它,并且工作正常。当我尝试运行另一个命令时,它将永远耗费时间(保持运行25分钟,但尚未停止)。 当我在命令行上执行tabix命令时,我得到以下统计信息 4.173u 0.012s 0:04.22 99.0%0 + 0k 0 + 0io 0pf + 0w 因此,它应该很快完成。