1789 читали · 4 года назад
Оконные функции (window functions) в PostgreSQL
Здравствуйте, уважаемые подписчики и гости канала! Продолжаю цикл статей по одной из моих любимых баз данных - PostgreSQL. Сори, за картинки, но дзен пока не позволяет нормально форматировать код. В самом конце статьи будут запросы для копипасты не картинкой. Работаю я с этой БД уже достаточно давно — лет 8 наверно. Переходили с MySQL по заданию от моего руководителя, который почитал статейку и поверил в PG. Тогда, да и долго еще после мы использовали БД как обычно, без особых изысков, разве, что секция RETURNING нам очень зашла — это особенная радость после mysql во всяком случае тех годов...
🔗Обязательные импорты в Spark-приложении # сессия from pyspark.sql import SparkSession # функции from pyspark.sql import functions as F # типы данных from pyspark.sql import types as T # оконки from pyspark.sql.window import Window F и T - это code-style, принятый в PySpark, чтобы избежать пересечений с другими либами. В коде будет так: F.function(args). И вообще импортируем только то, что нужно. import * - это моветон. // датафрейм и сессия import org.apache.spark.sql.{DataFrame, SparkSession} // функции import org.apache.spark.sql.functions._ // импорт всего // udf (кастомные функции) и оконки import org.apache.spark.sql.expressions.{UserDefinedFunction, Window} // типы данных import org.apache.spark.sql.types._ В отличие от питона, в скале нужно указывать типы аргументов в функциях, поэтому мы дополнительно импортируем DataFrame, UserDefinedFunction и Window, т.к. они наиболее часто используются. А сами оконки лежат в модуле functions. def func(df: DataFrame, time_window: Window): DataFrame = {...} #spark