Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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 MLlib 1.6预测模型的可伸缩调用_Apache Spark_Apache Kafka_Spark Streaming_Apache Spark Mllib - Fatal编程技术网

Apache spark 带单个数据记录的Spark MLlib 1.6预测模型的可伸缩调用

Apache spark 带单个数据记录的Spark MLlib 1.6预测模型的可伸缩调用,apache-spark,apache-kafka,spark-streaming,apache-spark-mllib,Apache Spark,Apache Kafka,Spark Streaming,Apache Spark Mllib,我在Spark 1.6中构建了一个预测模型(逻辑回归),该模型已保存到磁盘,以便以后与新数据记录一起重用。我想用多个客户端调用它,每个客户端传入一条数据记录。似乎使用Spark作业来运行单个记录会有太多的开销,并且不具有很强的可伸缩性(每个调用只传递一组18个值)。加载保存的模型的MLlib API需要Spark上下文,尽管如此,我正在寻找如何以可伸缩的方式实现这一点的建议。脑海中浮现出带有卡夫卡输入的Spark流(每个客户端请求都会写入卡夫卡主题)。对这个想法或其他建议有何想法 来自o.a.s

我在Spark 1.6中构建了一个预测模型(逻辑回归),该模型已保存到磁盘,以便以后与新数据记录一起重用。我想用多个客户端调用它,每个客户端传入一条数据记录。似乎使用Spark作业来运行单个记录会有太多的开销,并且不具有很强的可伸缩性(每个调用只传递一组18个值)。加载保存的模型的MLlib API需要Spark上下文,尽管如此,我正在寻找如何以可伸缩的方式实现这一点的建议。脑海中浮现出带有卡夫卡输入的Spark流(每个客户端请求都会写入卡夫卡主题)。对这个想法或其他建议有何想法

来自
o.a.s.mllib
的非分布式(实际上是大多数)模型不需要活动的
SparkContext
进行单项预测。如果您进行检查,您将看到
LogisticRegressionModel
提供了带有签名的
predict
方法
Vector=>Double
。这意味着您可以使用标准Java工具序列化模型,稍后阅读并对本地
o.a.s.mllib.Vector
对象执行预测

Spark还提供(不适用于逻辑回归),因此您可以与支持此格式的任何其他库共享您的模型

最后,非分布式模型通常不那么复杂。对于线性模型,您所需要的只是截距、系数和一些基本的数学函数以及线性代数库(如果您想要良好的性能)

o.a.s.ml
模型稍难处理,但有一些外部工具试图解决这一问题。您可以查看开发人员列表()中的相关讨论以了解详细信息

对于分布式模型,确实没有很好的解决方法。您必须以这样或那样的方式在分布式数据集上开始一个完整的作业