Apache spark Spark状态计算:在mappingFunction中创建RDD
我正在使用Spark Streaming构建一个程序,该程序对输入数据执行一些线性回归,预测我的输出数据并打印该预测 我还想训练我的模型,不仅要训练传入数据,还要训练最后的xxx数据点,我想使用Sparks有状态计算功能来完成这项任务。我所在的州保存着一份数据列表,到时候,将使用所有这些数据来训练模型并预测一组新的值 该应用程序通过spark submit发送给运行在mesos群集上的spark dispatcher,spark submit还设置了该应用程序的主url。正如您在下面看到的,这似乎是一些问题的根源 Sparks MLlib算法(LinearRegressionWithGD)只接受RDD作为输入。这意味着我必须在我的状态下并行化存储在存储器中的数据,例如,使用类似(sc是spark上下文)的东西: 然而,这会产生一些问题:Apache spark Spark状态计算:在mappingFunction中创建RDD,apache-spark,streaming,rdd,stateful,bigdata,Apache Spark,Streaming,Rdd,Stateful,Bigdata,我正在使用Spark Streaming构建一个程序,该程序对输入数据执行一些线性回归,预测我的输出数据并打印该预测 我还想训练我的模型,不仅要训练传入数据,还要训练最后的xxx数据点,我想使用Sparks有状态计算功能来完成这项任务。我所在的州保存着一份数据列表,到时候,将使用所有这些数据来训练模型并预测一组新的值 该应用程序通过spark submit发送给运行在mesos群集上的spark dispatcher,spark submit还设置了该应用程序的主url。正如您在下面看到的,这似
- 我无法为我的状态提供spark上下文,因为它不可序列化,而且状态显然会被发送到所有的执行器(我尝试过了,得到了NotSerializableException)
- 我试图定义一个保存spark上下文的对象,并在类中直接使用它,其思想是对象是一个单例,当函数需要它时,它将被复制到spark executor:
object Spark { lazy val config = new SparkConf() lazy val context = new SparkContext } // Then in my state mapping fuction: val parallelizedData = Spark.context.parallelize(trainingData)
或者我可以创建一个只驻留在worker上的RDD,并将其发送回驱动程序,驱动程序将聚合结果并创建一个新的RDD供我用于培训吗?我没有状态计算的经验,但我知道新的Spark 1.6功能:mapWithState]()希望这能有所帮助。你到底想做什么还不清楚。我觉得奇怪的是,您需要将
SparkContext
存储在对象中。试着描述一下你的意图是什么,以及你想实现什么。我没有状态计算的经验,但我知道Spark 1.6的新功能:mapWithState]()希望这能有所帮助。现在还不清楚你到底想做什么。我觉得奇怪的是,您需要将SparkContext
存储在对象中。试着描述一下你的意图是什么,以及你想实现什么。
object Spark {
lazy val config = new SparkConf()
lazy val context = new SparkContext
}
// Then in my state mapping fuction:
val parallelizedData = Spark.context.parallelize(trainingData)