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中获取指定时区的一天的开始时间和结束时间?

如何在跨越多天的时间安排中获取一天的结束时间

如何获取一周中每一天的密码?

java如何获取某一天的日期?

如何在 Spark Streaming 中使用基于数据集的转换?

启用夏令时时如何在 T-SQL 中获取一天的开始和结束?