Как DataFrame получить тот же групповой с помощью оконной функции

1

Я использую часть DataFrame PySpark для анализа данных из Apache Kafka. У меня проблемы, и мне нужна помощь.

    from pyspark.sql import functions

    # selected_df is dataframe come from kafka use spark.readStream.format("kafka")...

    windowed_group_1 = selected_df.withWatermark("kafka_time", "10 minutes").groupBy(functions.window("kafka_time", "10 seconds", "5 seconds"))

    windowed_group_2 = selected_df.withWatermark("kafka_time", "10 minutes").groupBy(functions.window("kafka_time", "10 seconds", "5 seconds"))

Являются ли две группы одинаковыми оконными функциями? они в одинаковых вариантах.

Если нет, как мне это сделать?

windowed_group_1 == windowed_group_2

Спасибо заранее за любую помощь.

Теги:
dataframe
pyspark

1 ответ

0

может быть, это то, что я хочу, оконная функция по умолчанию принимает 1970-01-01T00: 00: 00 в качестве системы отсчета. ) всякий раз, когда используется временное окно

from pyspark.sql import functions as func

a = labeled_df.groupBy(func.window("timestamp", "60 minute"), "proto").count().show(100, truncate=False)

b = labeled_df.groupBy(func.window("timestamp", "60 minute"), "proto").count().show(100, truncate=False)

результат а и б одинаков

a
+------------------------------------------+---------+-----+
|window                                    |proto    |count|
+------------------------------------------+---------+-----+
|[2010-06-13 08:00:00, 2010-06-13 09:00:00]|UDP      |1803 |
|[2010-06-13 02:00:00, 2010-06-13 03:00:00]|TCP      |22579|
|[2010-06-13 09:00:00, 2010-06-13 10:00:00]|TCP      |2637 |
|[2010-06-13 02:00:00, 2010-06-13 03:00:00]|IPv6-ICMP|453  |
|[2010-06-13 02:00:00, 2010-06-13 03:00:00]|UDP      |1183 |
|[2010-06-13 03:00:00, 2010-06-13 04:00:00]|UDP      |1467 |


b
+------------------------------------------+---------+-----+
|window                                    |proto    |count|
+------------------------------------------+---------+-----+
|[2010-06-13 08:00:00, 2010-06-13 09:00:00]|UDP      |1803 |
|[2010-06-13 02:00:00, 2010-06-13 03:00:00]|TCP      |22579|
|[2010-06-13 09:00:00, 2010-06-13 10:00:00]|TCP      |2637 |
|[2010-06-13 02:00:00, 2010-06-13 03:00:00]|IPv6-ICMP|453  |
|[2010-06-13 02:00:00, 2010-06-13 03:00:00]|UDP      |1183 |
|[2010-06-13 03:00:00, 2010-06-13 04:00:00]|UDP      |1467 |

Ещё вопросы

Сообщество Overcoder
Наверх
Меню