TGViewer
Поступашки — BIG DATA Поступашки — BIG DATA @bigdata_postupashki · 1.03K subscribers
Post #28 4.52K
Задачки с собеса в Самокат

Собесился на мидла, был лайфкодинг + разговор про технологии, поэтому встреча была довольно долгой, а задачки не особо сложными. Давайте же начнем именно с задачек 🤓
Самокат одни из немногих на моей памяти, кто еще используют Scala для разработки на Spark, так что один из этапов это вообще вспомнить её.
Однако, вспомнив былую молодость, успешно справился с этим 😎 (благо DF API примерно одинаковое, что в Scala, что на Python)

Дано:
Таблицы: order, order_line, address, order_status, связи между ними и прочее (все на схеме выше)

Задачи:

SQL:
1) Все заказы клиента customer_id = 42
SELECT o.*
FROM order AS o
WHERE o.customer_id = 42;


2) Для каждого заказа — вторая по цене позиция (от самых дорогих)
WITH ranked AS (
SELECT
ol.*,
ROW_NUMBER() OVER (PARTITION BY ol.order_id ORDER BY ol.price DESC) AS rn
FROM order_line AS ol
)
SELECT *
FROM ranked
WHERE rn = 2;


Spark на Scala:
Нужно было вывести айдишники покупателей и их адрес: вся задачка сводится к тому, что нужно присоединить координаты position_lon/position_lat к address и вывести customer_id, address_line
Т.е. буквально все решается в один join
import org.apache.spark.sql.functions._

val orders = spark.table("order")
val address = spark.table("address")

val result = orders
.join(
address,
Seq("position_lat", "position_lon"),
"inner"
)
.select(orders("customer_id"), address("address_line"))
.distinct()

result.show()

Предложил также, что можно было бы округлить координаты, если там большая точность, но этого не требовалось.
По итогу собес в кармане — идем дальше 😎

@bigdata_postupashki
  • 🔥 6
  • 💯 4
  • ❤ 2
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 →