- Можешь ли выделить 1 или 2 скилла, без которых современному дата инженеру вообще никак? Почему?
- Как построить озеро данных, чтобы оно не превратилось в болото?
- Какую самую долгую задачу ты решал?
- Как планировал?
- Как удерживал мотивацию?
- Как преодолевал трудности?
- ABC
- Liskov substitution principle
- Type hints (what? why? when?)
- What is executed on import time
- [c for c in 'hello'] --- What happens? How this works?
- What is GIL?
- Async/await
- Can you tell how to get value of env variable by memory?
- Как понять насколько хороша абстракция у класса или метода?
- SortMerge Join (how? when? why?)
- Effectiveness window functions vs self-joins, etc.
- Logical query processing order
- How to make preparations before test execution?
- How to clean up after test?
- Есть понимание как происходит менеджмент ресурсов для спарка? Standalone/YARN/K8s?
- Я считал csv, в котором была колонка с timestamp. Но теперь в датафрейме я вижу, что время отличается. Почему?
- Не знаешь спарк? Как собираешься в нем разобраться?
- Как смотришь на то, чтобы строить DWH "звезда" в clickhouse?
- Что такое гранула?
- Я поменял тип колонки и загрузка цпу зашкаливает. Что происходит?
- Знаешь что такое mutation? Как сделать для нее rollback?
- Кто такой тимлид и зачем он нужен команде и бизнесу?
- Как ревьюить чужой код? Как понять что код плох или хорош?
- К тебе пришел коллега и пожаловался на то, что товарищ совсем забил на гигиену. Твои действия?
- Дедлайн на твоем проекте приблизили. Как ты будешь мотивировать команду?
- Как ты ресечишь перед тем, как проектировать новую систему?
- Следишь за трендами в отрасли? Можешь рассказать что-нибудь интересное из того, что недавно узнал?
- У тебя есть сторонние проекты?
Есть таблица connections
с парами ip - timestamp. Надо вывести минуты, в которых были повторяющиеся подключения с одного ip.
|ip |ts |
|---------------|-----------------------|
|87.223.123.7 |2023-09-20 11:30:04.000|
|177.124.202.211|2023-09-20 11:30:23.124|
|87.223.123.7 |2023-09-20 11:30:49.235|
|201.229.189.94 |2023-09-20 11:31:32.337|
|254.49.247.47 |2023-09-20 10:32:28.937|
|90.221.223.184 |2023-09-20 10:32:31.292|
|74.67.144.146 |2023-09-20 10:33:00.937|
Результат: 2023-09-20 11:30:00.000
CREATE TABLE connections (
ip String,
ts Timestamp
)
INSERT INTO connections
VALUES
('87.223.123.7', '2023-09-20 11:30:04.000023031'),
('177.124.202.211', '2023-09-20 11:30:23.124002634'),
('87.223.123.7', '2023-09-20 11:30:49.235926293'),
('201.229.189.94', '2023-09-20 11:31:32.337261931'),
('254.49.247.47', '2023-09-20 11:32:28.937619371'),
('90.221.223.184', '2023-09-20 11:32:31.292716731'),
('74.67.144.146', '2023-09-20 11:33:00.937619437')
SELECT
date_trunc('minute', ts) AS minute,
count(ip),
count(DISTINCT ip)
FROM connections
GROUP BY date_trunc('minute', ts)
HAVING count(ip) > 1 AND count(ip) <> count(DISTINCT ip)
Что будет выведено на экран?
def decorate(cls):
print('decorate')
return cls
def get_c():
print('c')
return 'c'
def get_b():
print('b')
return 'b'
@decorate
class A:
b = get_b()
def __init__(self, c=get_c()):
self.c = c
def get_e(self):
print('e')
return 'e'
A()
Что, если закомментировать инициализацию A()
?