@hattie
Оконные функции в PySpark позволяют выполнять агрегационные функции, такие как сумма или среднее, над группами строк внутри одной таблицы. Для использования оконных функций в PySpark необходимо использовать метод over()
.
Вот пример использования оконной функции sum
в PySpark:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
from pyspark.sql.window import Window from pyspark.sql.functions import sum from pyspark.sql import SparkSession # создаем SparkSession spark = SparkSession.builder.appName("Example").getOrCreate() # создаем DataFrame с данными data = [("A", 1), ("B", 2), ("A", 3), ("B", 4)] df = spark.createDataFrame(data, ["group", "value"]) # определяем окно для группировки строк window = Window.partitionBy("group") # используем оконную функцию sum для суммирования значений в каждой группе df.select("group", "value", sum("value").over(window).alias("sum_value")).show() |
Результат выполнения данного кода:
1 2 3 4 5 6 7 8 |
+-----+-----+---------+ |group|value|sum_value| +-----+-----+---------+ | A| 1| 4| | A| 3| 4| | B| 2| 6| | B| 4| 6| +-----+-----+---------+ |
В этом примере мы создали DataFrame с данными, содержащими две группы строк ("A" и "B"). Затем мы определили окно, используя метод partitionBy()
, чтобы сгруппировать строки по значению столбца "group". Наконец, мы использовали оконную функцию sum
для вычисления суммы значений в каждой группе.