【问题标题】:LSHModel on spark structured streaming火花结构化流的 LSHModel
【发布时间】:2021-05-31 21:17:52
【问题描述】:

显然,来自 spark 2.4 的 MLLib 的 LSHModel 支持 Spark Structured Streaming (https://issues.apache.org/jira/browse/SPARK-24465)。

但是,我不清楚如何。例如,MinHashLSH 转换 (https://spark.apache.org/docs/latest/ml-features#lsh-operations) 中的 approxSimilarityJoin 可以直接应用于流数据帧?

我没有在网上找到更多关于它的信息。有人可以帮我吗?

【问题讨论】:

    标签: apache-spark spark-structured-streaming lsh


    【解决方案1】:

    你需要

    1. 将经过训练的模型(例如modelFitted)保留在您的流式处理作业可访问的位置。这是在您的流媒体作业之外完成的。
    modelFitted.write.overwrite().save("/path/to/model/location")
    
    1. 然后在结构化流作业中加载此模型
    import org.apache.spark.ml._
    val model = PipelineModel.read.load("/path/to/model/location")
    
    1. 将此模型应用于您的流数据帧(例如df
    model.transform(df)
    
    // in your case you may work with two streaming Dataframes to apply `approxSimilarityJoin`.
    

    可能需要将流数据帧转换为模型预测中使用的正确格式。

    【讨论】:

    • 我明白了。如果我理解正确,这意味着每次读取新批次时都必须将模型重新拟合到整个数据流上?
    • 此外,对于数据流,approxSimilarityJoin 似乎必须以有状态的方式在每个新批次和流中的所有先前数据之间计算。所以必须先保存流中的所有数据。是这种情况还是我做错了什么?
    猜你喜欢
    • 2018-07-12
    • 1970-01-01
    • 2020-08-18
    • 2019-06-08
    • 2020-02-12
    • 2020-10-25
    • 2020-02-25
    • 2019-09-20
    • 1970-01-01
    相关资源
    最近更新 更多