apache-spark - 按使用的时间窗口分组时,Spark 如何确定第一个窗口的 window.start?

标签 apache-spark apache-spark-sql spark-streaming

这是数据示例:

scala> purchases.show(false)
+---------+-------------------+--------+
|client_id|transaction_ts     |store_id|
+---------+-------------------+--------+
|1        |2018-06-01 12:17:37|1       |
|1        |2018-06-02 13:17:37|2       |
|1        |2018-06-03 14:17:37|3       |
|1        |2018-06-09 10:17:37|2       |
|2        |2018-06-02 10:17:37|1       |
|2        |2018-06-02 13:17:37|2       |
|2        |2018-06-08 14:19:37|3       |
|2        |2018-06-16 13:17:37|2       |
|2        |2018-06-17 14:17:37|3       |
+---------+-------------------+--------+

当我按时间窗口分组时:

scala> purchases.groupBy($"client_id", window($"transaction_ts", "8 days")).count.orderBy("client_id", "window.start")show(false)

+---------+---------------------------------------------+-----+                 
|client_id|window                                       |count|
+---------+---------------------------------------------+-----+
|1        |[2018-05-28 17:00:00.0,2018-06-05 17:00:00.0]|3    |
|1        |[2018-06-05 17:00:00.0,2018-06-13 17:00:00.0]|1    |
|2        |[2018-05-28 17:00:00.0,2018-06-05 17:00:00.0]|2    |
|2        |[2018-06-05 17:00:00.0,2018-06-13 17:00:00.0]|1    |
|2        |[2018-06-13 17:00:00.0,2018-06-21 17:00:00.0]|2    |
+---------+---------------------------------------------+-----+

我想知道为什么第一个 window.start2018-05-28 17:00:00.0 而数据中的最小值是 2018-06-01 12:17:37

Spark如何计算时间窗口?我期望第一个最小值将用作 min window.start...

最佳答案

谢谢@user8371915!

按照建议的链接,我找到了我正在寻找的答案,特别是window.start与我的数据没有任何关系,Spark从1970-01-01开始生成窗口。更多详情请参阅What does the 'pyspark.sql.functions.window' function's 'startTime' argument do?

关于apache-spark - 按使用的时间窗口分组时,Spark 如何确定第一个窗口的 window.start?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51564381/

相关文章:

r - readTypedObject(con, type) : Unsupported type for deserialization 中的 SparkR 错误

scala - 如何将收到记录的年、月、日写入S3?

apache-spark - 缓存和检查点是否应该在数据集上一起使用?如果是这样,这是如何在引擎盖下工作的?

java - 使用 Spark Streaming 连接到 Cassandra 时出错

spark-streaming - Spark Streaming 检查点到亚马逊 s3

scala - 在spark中将一行附加到一对RDD

java - 无此类文件异常 - Spark Standalone 集群

scala - Apache Spark、范围连接、数据倾斜和性能

apache-spark - Spark-SQL 中的连接性能

json - Spark Streaming 滑动窗口的最大值和最小值