Skip to content

Latest commit

 

History

History
63 lines (57 loc) · 3.43 KB

README.md

File metadata and controls

63 lines (57 loc) · 3.43 KB

mindbox_tasks

Задание на стажировку.

Задание 1.

Напишите на C# или Python библиотеку для поставки внешним клиентам, которая умеет вычислять площадь круга по радиусу и треугольника по трем сторонам. Дополнительно к работоспособности оценим:

  • Юнит-тесты
  • Легкость добавления других фигур
  • Вычисление площади фигуры без знания типа фигуры в compile-time
  • Проверку на то, является ли треугольник прямоугольным\

Решение:

  1. Нахождение площади круга по радиусу:
    circle = Circle(10) # Задание радиуса
    circle.area() # Возвращает площадь круга
  2. Нахождение площади треугольника по трём сторонам:
    triangle = Triangle(3, 5, 4) # Задание сторон triangle.area() # Возвращает площадь треугольника
  3. Является ли треугольник прямоугольным:
    triangle.is_rectangular()

Задание 2.

В датафреймах (pyspark.sql.DataFrame) заданы продукты, категории и связь между ними. Одному продукту может соответствовать много категорий, в одной категории может быть много продуктов. Напишите метод с помощью PySpark, который вернет все продукты с их категориями (датафрейм с набором всех пар «Имя продукта – Имя категории»). В результирующем датафрейме должны также присутствовать продукты, у которых нет категорий.

Решение:

Пусть даны таблицы:
Таблица продуктов (название, идентификатор)

name id
'milk' 0
'chocolate' 1
'car' 2
'cheese' 3

Таблица категорий (категория, идентификатор)

category id
dairy 0
sweets 1
confectionery 2
cheeses 3

Таблица связей (идентификатор продукта, идентификатор категории)

name_id category_id
0 0
1 1
1 2
2 null
3 0
3 3

Построим таблицу, которая содержит в себе все назавния продуктов и их категории.
Запрос -
df_rez = product_and_category.join(categories_table, categories_table.id == product_and_category.category_id, how="inner").join(products_table, products_table.id == product_and_category.name_id, how="full_outer") df_rez.select(df_rez.category,df_rez.name).show()

Полученная таблица:

category name
cheeses cheese
dairy cheese
dairy milk
sweets chocolate
confectionery chocolate
null car