【问题标题】:Spark Streaming: How to get the count of the timestamps for a day?Spark Streaming:如何获取一天的时间戳计数?
【发布时间】:2023-03-10 18:24:01
【问题描述】:

从数据具有时间戳的 kafka 主题中读取流。这些数据也可以有未来或过去的时间戳。
有没有办法计算一天的数据数量? 我尝试将timestamp 转换为date,然后在date 上进行聚合,并将sum 作为count。它似乎不起作用。

sourceDataset
                .withWatermark("timestamp", watermarkInterval)
                .select(
                        col("timestamp").cast("date")
                )
                .groupBy(
                        functions.window(col("date"), windowInterval)
                ).sum().as("count")
                ;

【问题讨论】:

  • 你能分享一个输入/输出样本吗?它可能只是让您更容易想到解决方案。

标签: java apache-spark apache-spark-sql spark-streaming


【解决方案1】:

使用 javapairdstream 并将日期设置为 key for 并将 value 设置为 1。现在可以使用 reduce by key 来计算出现次数。这适用于您尝试以微批次获取数字的情况

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多