我正在练习使用 spark 网站中提供的在线资源开发示例模型。我设法创建模型并使用 Spark-Shell 为示例数据运行它,但是如何在生产环境中实际运行模型?是通过 Spark Job 服务器吗?
import org.apache.spark.mllib.classification.SVMWithSGD
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.linalg.Vectors
val data = sc.textFile("hdfs://mycluster/user/Cancer.csv")
val parsedData = data.map { line =>
val parts = line.split(',')
LabeledPoint(parts.last.toDouble, Vectors.dense(parts.take(9).map(_.toDouble)))
}
var svm = new SVMWithSGD().setIntercept(true)
val model = svm.run(parsedData)
var predictedValue = model.predict(Vectors.dense(5,1,1,1,2,1,3,1,1))
println(predictedValue)
上面的代码在我在 spark-shell 中运行时完美运行,但我不知道我们如何在生产环境中实际运行模型。我尝试通过 spark jobserver 运行它,但出现错误,
curl -d "input.string = 1, 2, 3, 4, 5, 6, 7, 8, 9" 'ptfhadoop01v:8090/jobs?appName=SQL&classPath=spark.jobserver.SparkPredict'
我确信它是因为传递了一个字符串值,而程序期望它是向量元素,有人可以指导我如何实现这一点。这也是在生产环境中将数据传递给模型的方式吗?或者是其他方式。