Spark Streaming:如何获取一天的时间戳计数?
Posted
技术标签:
【中文标题】Spark Streaming:如何获取一天的时间戳计数?【英文标题】:Spark Streaming: How to get the count of the timestamps for a day? 【发布时间】:2018-10-16 14:42:20 【问题描述】:从数据具有时间戳的 kafka 主题中读取流。这些数据也可以有未来或过去的时间戳。
有没有办法计算一天的数据数量?
我尝试将timestamp
转换为date
,然后在date
上进行聚合,并将sum
作为count
。它似乎不起作用。
sourceDataset
.withWatermark("timestamp", watermarkInterval)
.select(
col("timestamp").cast("date")
)
.groupBy(
functions.window(col("date"), windowInterval)
).sum().as("count")
;
【问题讨论】:
你能分享一个输入/输出样本吗?它可能只是让您更容易想到解决方案。 【参考方案1】:使用 javapairdstream 并将日期设置为 key for 并将 value 设置为 1。现在可以使用 reduce by key 来计算出现次数。这适用于您尝试以微批次获取数字的情况
【讨论】:
以上是关于Spark Streaming:如何获取一天的时间戳计数?的主要内容,如果未能解决你的问题,请参考以下文章
如何在javascript中获取指定时区的一天的开始时间和结束时间?