Apache spark Apache Spark将事件计数放入时间戳存储桶中

Apache spark Apache Spark将事件计数放入时间戳存储桶中,apache-spark,pyspark,apache-spark-sql,spark-dataframe,apache-spark-2.0,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 在

我已将数据加载到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  
在熊猫中这很容易,但我不知道如何在Spark SQL中实现

上述格式数据必须以时间戳作为一列,以该时间段内发生的事件数(即b/w时间戳和时间戳+2分钟)作为另一列

非常感谢您的帮助


谢谢。

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

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

谢谢,我得到了NameError:name'window'没有定义可能你没有导入org.apache.spark.sql.functions.\u对于pyspark,从pyspark.sql.functions import*@carlosvillchez你能像
df.groupby('TimeStamp').sum()
?@pissall那样聚合吗?当你直接按时间戳分组时,你将它分组到毫秒。因此,可能您将拥有与行一样多的组。