Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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
Apache spark Spark和Spark JobServer避免在每次调用runJob时调用昂贵的重构对象的最佳实践(sc:SparkContext,config:config)_Apache Spark_Spark Jobserver - Fatal编程技术网

Apache spark Spark和Spark JobServer避免在每次调用runJob时调用昂贵的重构对象的最佳实践(sc:SparkContext,config:config)

Apache spark Spark和Spark JobServer避免在每次调用runJob时调用昂贵的重构对象的最佳实践(sc:SparkContext,config:config),apache-spark,spark-jobserver,Apache Spark,Spark Jobserver,每次调用下面的JobServer runJob API时,我都有一个时间开销逻辑来在runJob调用中重复构造一个对象 runJob(sc: SparkContext, config: Config) 将对象存储在内存中的最佳实践是什么,以避免每次调用runJob API时重复构造对象,从而使每次调用runJob都可以在第一次调用期间重用存储在内存中的对象 如果我可以执行1,那么当我需要更新对象时,我还可以删除内存中的对象吗 如果我可以执行1,我可以跨集群共享对象吗 除了常规对象之外,我还要问

每次调用下面的JobServer runJob API时,我都有一个时间开销逻辑来在runJob调用中重复构造一个对象

runJob(sc: SparkContext, config: Config)
  • 将对象存储在内存中的最佳实践是什么,以避免每次调用runJob API时重复构造对象,从而使每次调用runJob都可以在第一次调用期间重用存储在内存中的对象

  • 如果我可以执行1,那么当我需要更新对象时,我还可以删除内存中的对象吗

  • 如果我可以执行1,我可以跨集群共享对象吗

  • 除了常规对象之外,我还要问,避免在每次调用中加载模型而只加载一次的最佳实践是什么,然后所有后续调用都可以使用该模型

  • RDD和DataFrame具有类似的缓存和持久化特性,我正在寻找常规对象和模型。但它们要求每次调用readFile,并且只有操作从缓存中受益。还有一个问题是,如何避免每次调用RDD和DataFrame时都读取文件

  • 广播变量和累加器能否用于常规对象和模型

  • Spark JobServer的NamedRDSupport能否通过定义隐式持久器来存储大型对象和模型


  • 我相信广播非常适合您的数据,而累加器则适合您的模型。我想补充一点,您可能需要研究
    mapPartitions
    提供的功能,它允许您在每个分区上只执行一次昂贵的初始化

    这是学习火花的一个例子:


    在本例中,昂贵的
    HttpClient
    初始化只执行一次。然后使用结果在表示为
    Iterable

    的分区上迭代。我相信广播非常适合您的数据,而累加器适合您的模型。我想补充一点,您可能需要研究
    mapPartitions
    提供的功能,它允许您在每个分区上只执行一次昂贵的初始化

    这是学习火花的一个例子:


    在本例中,昂贵的
    HttpClient
    初始化只执行一次。然后,您使用结果在表示为
    Iterable

    的分区上迭代。您可以定义“常规对象和模型”的含义吗?常规对象是指任意scala对象。模型是指预测模型。你能定义一下“常规对象和模型”是什么意思吗?常规对象是指任意的scala对象。模型是指预测模型。
    val contactsLists = validSigns.distinct().mapPartitions { signs = > 
      val mapper = createMapper() 
      val client = new HttpClient() 
      client.start() // create http request 
      signs.map { sign => 
        createExchangeForSign(sign) // fetch responses 
      }.map { 
        case (sign, exchange) => (sign, readExchangeCallLog( mapper, exchange)) 
      }.filter( x = > x._2 != null)
    }