Spark新手警报。我一直在探索设计需求的想法,其中涉及以下内容:
这必须在sync(req / resp)模式下完成,以便调用者代码调用预测代码,获得结果并继续下游。调用者代码在spark之外(它是一个webapp)。
我很难理解Spark / Spark Streaming是否适合进行线性回归纯粹因为它是异步性质。
根据我的理解,它只是一个Job Paradigm的工作,你告诉它一个源(DB,Queue等),它进行计算并将结果推送到目的地(DB,Queue,File等)。我看不到可用于获取结果的HTTP / Rest接口。
Spark是我的正确选择吗?或者有更好的想法来解决这个问题吗?
感谢。
答案 0 :(得分:0)
如果我做对了,那么一般来说你必须解决三个基本问题:
通常,Spark是一个以管道方式对某些数据集执行分布式批量计算的平台。因此,通过工作范式,你是对的。 Job实际上是一个由Spark执行并具有开始和结束操作的管道。您将获得诸如集群中的分布式工作负载和有效资源利用率等优点(与其他此类平台和框架相比)由于数据分离而允许在狭窄操作中执行并行执行的性能。
因此,对我来说,正确的解决方案是使用Spark来构建和更新您的模型,然后将其导出到其他解决方案中,该解决方案将满足您的请求并使用此模型进行预测。
对结果做点什么
在第3步中,您可以使用kafka和spark streaming传递更正的结果并更新模型的精度。
一些有用的链接可能会有所帮助:
https://www.phdata.io/exploring-spark-mllib-part-4-exporting-the-model-for-use-outside-of-spark/
http://openscoring.io/blog/2016/07/04/sparkml_realtime_prediction_rest_approach/