python SQL airflow

  1. разница loc / iloc

  2. что такое dag в airflow

  3. с точки зрения airflow, dag это что? как расшифровывается?

  4. граф чего?

  5. какие виды джоинов знаешь?

  6. Какой из этих докефайла лучше использовать, если мы знаем что мы часто меняем значение какой-то переменной в этом докерфайле и создаем новый образ?

FROM some_image_with_python
 
EXPOSE 11
 
RUN python -m pip install some_packege
 
ENV some_variable=variable_value
FROM some_image_with_python
 
EXPOSE 11
 
ENV some_variable=variable_value
 
RUN python -m pip install some_packege
  1. Дана директория root, которая устроена следующим образом:
|--root
|--|-dir1
|--|--|
|--|--|--|-wheel.whl
|--|
|--|-dir2

Ты находишься в директории dir1, тебе необходимо перейти в директорию dir2, создать там виртуальное окружение venv и установить туда колесо wheel.whl

  1. Есть функция, которая часто дергается с одними и теми же аргументами, поэтому мы хотели бы закешировать ее в какое-то значение, ее ответ на каком-то аргументе, на полследнем. Если вдруг она дальше будет вызвана с этим последним аргументом, то мы хотели бы просто вернуть закешированное значение, а не высчитывать заново.

    Напиши класс-декоратор для функции, который будет осуществлять кеширование последнего вызова функции. То есть запоминать последний переданный аргумент и, если следующий вызов функции будет с тем же аргументом, вернуть закешированное значение.

  2. Дан таргет и факторы, используемые моделью. Необходимо реализовать фукнцию, рассчитывающую permutation importance для каждого признака. Необходимо вернуть dict, где каждому из features будет соответствовать его важность.

    def permutation_importance(target: pd.Series, features: pd.DataFrame, model: cb.CatBoostClassifier, metrics: function)

  3. Дана таблица

trans
 |-- person_id: long
 |-- dt_tm: timestamp
 |-- amount: double
 |-- trans_type: integer

Найти:

  • самый частый тип транзакций
  • среднюю сумму транзакций
  • среднее число транзакций, совершаемых одним пользователем за месяц (будем считать, что округление до начала месяца производится функцией date_trunc(‘month’, {название колонки}) для каждого пункта отдельный запрос