Перейти к содержанию

Скрипт модели

В среде выполнения используется язык Python 3.10

before_all

def before_all(app, spark, *args, **kwargs):
    return
Параметр Описание
app Доступ к контексту текущего выполняемого приложения (см. Application)
spark Текущая сессия в Spark (см. SparkSession)
*args, **kwargs Стандартные дополнительные параметры python-функций (см. пояснение ниже)

after_load_*

Вместо * указывается model_name соответствующего объекта. Это значение можно уточнить в разделе "Модель" редактора скрипта.

def after_load_List1(df, app, spark, *args, **kwargs):
    return df
Параметр Описание
df Датафрейм с данными модели (см. DataFrame). Названия столбцов соответствуют model_name полей объекта моделей (можно уточнить в разделе "Модель" редактора)
app Доступ к контексту текущего выполняемого приложения (см. Application)
spark Текущая сессия в Spark (см. SparkSession)
*args, **kwargs Стандартные дополнительные параметры python-функций (см. пояснение ниже)

after_all

def after_all(df, app, spark, *args, **kwargs):
    return df
Параметр Описание
df Датафрейм с данными модели (см. DataFrame). Названия столбцов соответствуют model_name полей объекта моделей (можно уточнить в разделе "Модель")
app Доступ к контексту текущего выполняемого приложения (см. Application)
spark Текущая сессия в Spark (см. SparkSession)
*args, **kwargs Стандартные дополнительные параметры python-функций (см. пояснение ниже)

Использование *args, **kwargs в определении функций

При заполнении скрипта модели настоятельно рекомендуется добавлять в конец стандартные дополнительные параметры языка Python *args, **kwargs.

В будущих версиях Analytic Workspace состав параметров функций может дополниться новыми значениями. При установке такого обновления все функции, в объявлении которых не будет указано *args, **kwargs, начнут выдавать ошибку.

Доступные библиотеки

В целях безопасности испольнения скриптов модели, в Analytic Workspace список возможных для импорта модулей ограничен.

При попытке импортировать недоступную библиотеку выбрасывается исключение.

from some_module import func


def after_all(df, spark, app, *args, **kwargs):
    func(df)
File "/app/spark_apps/model_transform.py", line 84, in
raise e
File "/app/spark_apps/model_transform.py", line 78, in
exec(byte_code, safe_globals)
File "", line 5, in
File "/app/etl_spark/safe.py", line 105, in safe_import
raise Exception(f'Импорт модуля {modules[0]} запрещен. Доступные модули: {SAFE_MODULES}')
Exception: Импорт модуля some_package запрещен. Доступные модули: ('pyspark', 'requests', 'pandas', 'numpy', 'datetime', '_strptime', 'json', 'decimal', 'collections', 'copy', 'functools', 'hashlib', 'itertools', 'math', 'string', 'time', 'zoneinfo')

Доступные стандартные библиотеки:

Доступные дополнительные библиотеки: