TGViewer
Поступашки — BIG DATA Поступашки — BIG DATA @bigdata_postupashki · 1.03K subscribers
Post #26 4.57K
Задача с собеседования в Спортмастер
В ней проверяют не столько умение решать задачи на sql, сколько ваше умение использовать df api в Spark — по тому, как вы решаете, сразу можно понять, сколько вы знаете про Spark.

Условие:
Даны таблицы:
sales(datetime, shop, art, quantity) — продажи товаров (quantity может быть отрицательным — возвраты).
prices(art, price) — цены товаров.

Задача:
Найти выручку магазина 100 за 2013-01-01.
Выручка = quantity * price.
Возвраты учитывать.

Пример данных
:
Sales
datetime | shop|art| quantity
01-01-13 12:12:12 | 100 |A1 | -2
01-01-13 12:12:13 | 100 |A1 | 3
Prices
art|price
A1 |10
Собственно, решение тут совсем несложное, как на SQL, так и на Spark DF, поэтому рекомендую сначала самому решить быстро, а потом проверить 🤓

Решение:
SQL (Spark SQL)
SELECT SUM(s.quantity * p.price) AS revenue
FROM sales s
JOIN prices p USING (art)
WHERE
s.shop = 100
AND to_date(s.datetime) = '2013-01-01';

PySpark DataFrame API
from pyspark.sql.functions import col, to_date, lit, sum as sum_
# сначала не забываем делать фильтры и селекты, а только после джоины и агрегации
sales = spark.read.table("sales")\
.withColumn("date", to_date("datetime"))\
.filter((col("shop") == 100) & (col("date") == lit("2013-01-01")))\
.select("art", "quantity")

prices = spark.read.table("prices").select("art", "price")

df = sales.join(prices, "art", "inner")\
.withColumn("amount", col("quantity") * col("price"))\
.agg(sum_("amount").alias("revenue"))

А чтобы с легкостью решать такие задачи рекомендую записывать на наш курс по дата инженерии 😎

@bigdata_postupashki
  • ❤ 4
  • 👍 3
  • 💯 3
More from @bigdata_postupashki
  1. Sep 6, 2026Разбор экзамена на стажировку в Т-банк за подписку! Чтобы получить разбор: ➡️Подпишитесь н…
  2. Jun 3, 2026Финальные скидки на карьерные курсы! Товарищи, специально для вас открываем доступ на лине…
  3. May 10, 2026Топ мест для вката в Data Engineering На слуху Яндекс, Т-банк, Авито и прочие ребята, но е…
  4. Apr 13, 2026Ментор+ Эта услуга для тех, кто хочет трудоустроиться уже сейчас без лишней головной боли…
  5. Jan 29, 2026Разбор экзамена по SQL Т-банка Разбор всех направлений выложен только на наших курсах. До…
  6. Dec 3, 2025Товарищи, Поступашкам нужны контент мейкеры. Если вы творческая личность, интересующейся ф…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →