Spark SQL并检测时间序列数据中的异常

时间:2017-10-24 20:44:50

标签: apache-spark elasticsearch apache-spark-sql apache-spark-2.0

我有一些时间序列数据,让我们说模型看起来像这样:

data {
    date: Date,
    greenPoint: Double,
    redPoint: Double,
    anomalyDetected: Boolean
}

假设如果红点低于特定阈值,我想将其标记为异常。

我可以轻松加载这个数据集(我使用带有弹性的Spark SQL,所以我在这里使DataFrame更具体)并将某些数据标记为异常,但是如何在此之后对它们进行分组,或者至少计数检测到多少异常?

如果我能以某种方式向每个异常添加一些唯一ID(在异常标志发生变化时生成),那么我甚至可以在Elastic查询中轻松地对它们进行分组。 在这些分组数据中开始异常日期和结束异常日期也会很棒。

基本上我的目标是在下面的例子中检测五个不同的异常(用红色标记)并标记原始数据以便轻松地将它们分组并在UI上显示或生成列表包含五个元素(五个异常,还有一些其他字段,如start和结束日期等。)。

graph

0 个答案:

没有答案