Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 按使用的时间窗口分组时,Spark如何确定第一个窗口的window.start?_Apache Spark_Apache Spark Sql_Spark Streaming - Fatal编程技术网

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

Apache spark 按使用的时间窗口分组时,Spark如何确定第一个窗口的window.start?,apache-spark,apache-spark-sql,spark-streaming,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

以下是数据示例:

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    |
+---------+---------------------------------------------+-----+
我想知道为什么第一个
窗口的开始时间是
2018-05-28 17:00:00.0
,而数据中的最小值是
2018-06-01 12:17:37

Spark如何计算时间窗口?我希望第一个最小值将用作
min窗口。开始

谢谢@user8371915

下面是我找到的答案的建议链接,特别是
窗口。start
与我的数据无关,Spark从
1970-01-01
开始生成窗口。有关详细信息,请参阅中的