Apache Spark将事件计入时间戳存储桶

时间:2018-05-02 09:00:19

标签: apache-spark pyspark apache-spark-sql spark-dataframe apache-spark-2.0

我已将数据加载到Spark数据框中,并使用Spark SQL进一步处理它。

我的问题很简单:

我有以下数据:

Event_ID Time_Stamp
1        2018-04-11T20:20..
2        2018-04-11T20:20..+1

等等。

我想知道每2分钟发生一次的事件数量。

所以,

我的输出将是:

Timestamp           No_of_events
2018-04-11T20:20..    2
2018-04-11T20:20..+2  3  

在Pandas中这很简单,但我不知道如何在Spark SQL中做到这一点。

上述格式数据必须将时间戳作为列,并将该时间段内发生的事件数(即黑白时间戳和时间戳+2分钟)作为另一列。

非常感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用窗口功能:

  df.groupBy(window(df["Time_Stamp"], "2 minutes"))
    .count()
    .show()