Spark 结构化流和 Spark-Ml 回归

Spark Structured Streaming and Spark-Ml Regression

是否可以将 Spark-Ml 回归应用于流媒体源?我看到有 StreamingLogisticRegressionWithSGD 但它适用于较旧的 RDD API 我 将它与结构化流媒体源一起使用。

  1. 我应该如何对结构化流媒体源应用回归?
  2. (有点加班)如果我不能使用流式处理 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