Функция Spark Window имеет поведение скользящего окна при заказе - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть набор данных, который выглядит следующим образом:

+---+-------------------------------+--------+
|key|value                          |someData|
+---+-------------------------------+--------+
|1  |AAA                            |5       |
|1  |VVV                            |6       |
|1  |DDDD                           |8       |
|3  |rrerw                          |9       |
|4  |RRRRR                          |13      |
|6  |AAAAABB                        |15      |
|6  |C:\Windows\System32\svchost.exe|20      |
+---+-------------------------------+--------+

Теперь я применяю агрегатную функцию avg дважды, сначала над упорядоченным окном, затем в неупорядоченном окне, результаты не совпадают с примером:

WindowSpec windowSpec = Window.orderBy(col("someData")).partitionBy(col("key"));
rawMapping.withColumn("avg", avg("someData").over(windowSpec)).show(false);

+---+-------------------------------+--------+-----------------+
|key|value                          |someData|avg              |
+---+-------------------------------+--------+-----------------+
|1  |AAA                            |5       |5.0              |
|1  |VVV                            |6       |5.5              |
|1  |DDDD                           |8       |6.333333333333333|
|6  |AAAAABB                        |15      |15.0             |
|6  |C:\Windows\System32\svchost.exe|20      |17.5             |
|3  |rrerw                          |9       |9.0              |
|4  |RRRRR                          |13      |13.0             |
+---+-------------------------------+--------+-----------------+

WindowSpec windowSpec2 = Window.partitionBy(col("key"));
rawMapping.withColumn("avg", avg("someData").over(windowSpec2)).show(false);

+---+-------------------------------+--------+-----------------+
|key|value                          |someData|avg              |
+---+-------------------------------+--------+-----------------+
|1  |AAA                            |5       |6.333333333333333|
|1  |VVV                            |6       |6.333333333333333|
|1  |DDDD                           |8       |6.333333333333333|
|6  |AAAAABB                        |15      |17.5             |
|6  |C:\Windows\System32\svchost.exe|20      |17.5             |
|3  |rrerw                          |9       |9.0              |
|4  |RRRRR                          |13      |13.0             |
+---+-------------------------------+--------+-----------------+

Когда окно размечено, агрегативная функция имеет поведение «скользящего окна», почему это происходит?и что более важно, это баг или фича?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...