Spark 结构化流和 Spark-Ml 回归
Spark Structured Streaming and Spark-Ml Regression
是否可以将 Spark-Ml 回归应用于流媒体源?我看到有 StreamingLogisticRegressionWithSGD
但它适用于较旧的 RDD API 我 将它与结构化流媒体源一起使用。
- 我应该如何对结构化流媒体源应用回归?
- (有点加班)如果我不能使用流式处理 API 进行回归,我如何才能以批处理方式提交偏移量或源代码? (卡夫卡水槽)
今天 (Spark 2.2 / 2.3) 结构化流中不支持机器学习,也没有朝这个方向进行的工作。请关注 SPARK-16424 以跟踪未来的进展。
但是您可以:
使用 forEach 接收器和某种形式的外部状态存储来训练迭代的非分布式模型。在高层次回归模型可以这样实现:
- 调用
ForeachWriter.open
时获取最新模型并为分区初始化损失累加器(不是 Spark 意义上的,只是局部变量)。
- 计算
ForeachWriter.process
中每条记录的损失并更新累加器。
- 调用
ForeachWriter.close
时推送丢失到外部存储。
- 这将使外部存储负责计算梯度和更新模型,实现依赖于存储。
尝试破解 SQL 查询(参见 https://github.com/holdenk/spark-structured-streaming-ml by Holden Karau)
是否可以将 Spark-Ml 回归应用于流媒体源?我看到有 StreamingLogisticRegressionWithSGD
但它适用于较旧的 RDD API 我
- 我应该如何对结构化流媒体源应用回归?
- (有点加班)如果我不能使用流式处理 API 进行回归,我如何才能以批处理方式提交偏移量或源代码? (卡夫卡水槽)
今天 (Spark 2.2 / 2.3) 结构化流中不支持机器学习,也没有朝这个方向进行的工作。请关注 SPARK-16424 以跟踪未来的进展。
但是您可以:
使用 forEach 接收器和某种形式的外部状态存储来训练迭代的非分布式模型。在高层次回归模型可以这样实现:
- 调用
ForeachWriter.open
时获取最新模型并为分区初始化损失累加器(不是 Spark 意义上的,只是局部变量)。 - 计算
ForeachWriter.process
中每条记录的损失并更新累加器。 - 调用
ForeachWriter.close
时推送丢失到外部存储。 - 这将使外部存储负责计算梯度和更新模型,实现依赖于存储。
- 调用
尝试破解 SQL 查询(参见 https://github.com/holdenk/spark-structured-streaming-ml by Holden Karau)