Я – Дата Инженер | Евгений Виндюков
4.55K subscribers
337 photos
34 videos
12 files
234 links
💵 Как стать Data Engineer
🗄 Смотри Roadmap в закрепе!
_____________________________
Автор @halltape
Все вопросы по рекламе @k_shredinger
Download Telegram
СберУниверситет

Был у нас ДР Трайба и мы поехали на два дня в Сбер Университет! Это такой огромный кампус, в котором можно жить, заниматься спортом, учиться и проводить презентации. Каждому выделяют одноместный номер в отеле (в здании кампуса) со всеми удобствами. Плюс кормят просто шикарно. Помимо завтрака-обеда-ужина у вас еще кофе брейки, на которых можно нереально наесться и так)) На каких-то кофе-брейках я уже просто водичку пил)) настолько наелся.

Также у нас была вечеринка вечером, где также большой выбор напитков, фуршет и так далее. Короче полный фарш.

Вообще суть этих двух дней была в том, что команды представляют свои идеи и предлагают решения для других. Это может быть, как продукт для сотрудников, так и новый продукт для рынка. Что-то может быть продумано до мелочей, а что-то на уровне идеи
продолжение внизу
🔥62
Мне понравилось, хоть иногда были продукты, которые я честно не понимал, зачем они нужны. Ну не бывает идеального решения. Иногда какие-то технологии пишутся годами и просто так их не повторить. Плюс для меня это было впервые и здесь важно было понять цели трайба и вообще, что мы делаем.

Коротко о трайбе: мы занимаемся маркетингом. Сюда входит СММ, рекламы, таргет, контекст, сквозная аналитика и так далее. Данных просто куча и со всем этим надо грамотно справляться. И здесь есть свои трудности. В особенности с поиском новых рекламных площадок. Поэтому, все новые фишки и тренды, которые выходят в мире, мы сразу пробуем и тестим..

P.S.Кстати много през было, где использовали кандинского для картинок, а также другие нейронки для озвучки голоса или написания текста...
4🔥2👏2
Задача на SQL

Нужно посчитать медиану дохода. Можно написать просто алгоритм, как будете решать. Кто решит, тому трешка в мск в центре!
😁6
Сколько весит таблица?

Нам будут выделять свой собственный кластер, поэтому мы считаем «сколько вешать в граммах». Собственно, как узнать сколько весит таблица, партиция?

Я запускаю в Jupiter notebook:
df.persist()
df.count()


После этого в Spark UI во вкладке Storage появится наша таблица. Можно будет даже проследить, как по мере её вычисления размер в Mb растет. Окончательный вес будет в конце.

Ну а df.count() в ноутбуке покажет количество строк. И не забываем потом чистить хеш unpersist().

Кто как узнает вес данных? Метод с SparkEstimator у меня не пошел - не смог подключить его.. 🤔
3👀1
This media is not supported in your browser
VIEW IN TELEGRAM
😁4🔥2
Что значит разрабатывать витрины данных и как это выглядит?

Витрина данных - это просто собранная из других таблиц таблица для аналитиков или дата сатанистов. Представьте у вас есть табличка с id людей и их покупки в магазине. И еще есть табличка, где этот же id, но с названиями городов. И вот для аналитиков нужна витрина, где будут отображены только люди и их города, которые покупают исключительно черный хлеб. И нужно, чтобы эта витрина наполнялась каждый день новыми данными.

Ну вот вы и пишете скрипт, который будет за вас каждый день читать таблицы источники и собирать эту витрину только с определенными качествами.

В чем сложность: в таблицах источниках могут быть пустые значения, запакованные json в строках или по-разному записанные значения. Все это дата инженеру надо поймать и отформатировать. Плюс нужно сразу определить, правильно ли будет витрина писаться, с какой периодичностью и с какими полями. Можно дополнять бесконечно. Например витрина при сборке должна обращаться к уже существующей витрине и обновлять некоторые строки или писать новые, учитывая изменения. Вариантов миллион.

Сам скрипт main.py можно запускать в Jupyter notebook руками каждый день. А можно написать DAG в Airflow и это все будет грузиться автоматически само.
👍135🔥3
Я – Дата Инженер | Евгений Виндюков pinned «Что значит разрабатывать витрины данных и как это выглядит? Витрина данных - это просто собранная из других таблиц таблица для аналитиков или дата сатанистов. Представьте у вас есть табличка с id людей и их покупки в магазине. И еще есть табличка, где этот…»
Как этот Hadoop выглядит?

Вот внешне никак. Он вообще не на вашем компьютере установлен. Он на серверах. Хабуп это просто распределенное хранение и вычисление данных. Короче ваша таблица в 100гб делится на блоки в 128мб (размер можно ставить любой) и потом они раскидываются по разным сервакам, параллельно дублируясь дважды (количество репликаций можно менять).

НО! У хабупа есть YARN. Это веб интерфейс в котором можно отслеживать как происходят вычисления в реальном времени. Это просто менеджер ресурсов, который показывает сколько у вас машин, сколько памяти, какие приложения сейчас считают и насколько нагружена вся эта канетель.

Я всегда смотрю, как вычисляются мои таблички. Вижу прогресс, сколько загрузилось, а сколько осталось. Оч нужная штука, чтобы оценить насколько вам требуется увеличение мощности в случае, если начнете считать внезапно х2 таблиц.
👍64
Чем pandas отличается от spark?

Это обе библиотеки Python. Это тот же sql, только написанный больше питоновским языком. Здесь можно сохранять подзапросы или целые таблицы в переменные, как в питоне. И вместо того, чтобы писать огромную портянку на sql, которая сразу выполняет весь запрос, в Спарке и пандасе можно выполнять весь код хоть построчно. Только spark умеет работать с распределенными данными, а pandas нет (ну т.е. только в пределах вашего компа)

Вот пример кода:
Pyspark
spark = SparkSession.builder \
.appName("halltape_data") \
.getOrCreate()

df = spark.table("schema.table.csv")\
.select("column1", "column2")\
.where(F.col("salary") > 100000)
df.show()

Pandas
df = pd.read_csv("table.csv")
df_2= df[["column1", "column2", "salary"]]
df_final = df_2[df_2["salary"] > 100000]
df_final.head()

Выглядят они в целом одинаково. Но в spark есть настройка sparksession как видите. Она позволяет настроить количество памяти, процессоров и так далее при котором Спарк будет считать это всё на кластере. Здесь я её не прописывал, там много параметров. Просто имейте в виду. Рекомендую для практики писать sql запрос, потом переписывать его на pandas или на spark.
👍125
Я – Дата Инженер | Евгений Виндюков pinned «Чем pandas отличается от spark? Это обе библиотеки Python. Это тот же sql, только написанный больше питоновским языком. Здесь можно сохранять подзапросы или целые таблицы в переменные, как в питоне. И вместо того, чтобы писать огромную портянку на sql, которая…»
🔤🔤🔤🔤
Нужны ли оконные функции?


Да. Если вы шарите за оконки в sql, то в spark или pandas освоить будет не проблема. Все аналогично. Оконные функции конечно вызывают страх и непонимание с первого раза, но не переживайте, я попробую вам объяснить.

Представьте, что в вашей прямоугольной таблице вы очерчиваете чуть меньше прямоугольник внутри (только ширина остается прежней). И только внутри этого окошка вы считаете например сумму или сортируете столбец. За пределы этого окошка ничего не выходит.

Оконная функция бьет вашу огромную таблицу на такие мелкие таблички(окна). И внутри каждого окна вычисляется то, что вам надо.

Например, если вам нужно посчитать нарастающий итог или пронумеровать в рамках одной группы, то здесь оконка будет самое то!
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3