Архив рубрики: Заметки

Версионирование .ipynb в git: готовые решения

Я очень не люблю класть .ipynb блокноты в git. На каждое движение они изменяют свои метаданные, порождая хаотичные диффы. Если класть .ipynb в систему версионирования, то нужно предварительно очищать его от всех входов и выходов и следить, чтобы никто нечаянно не закоммитил неочищенную версию, и это все очень неудобно… Оказывается, не я один беспокоюсь из-за этого. Читать далее Версионирование .ipynb в git: готовые решения

Как класть Parquet 2: внутреннее устройство

Почему-то в интернетах не так уж много пишут о внутреннем устройстве Parquet. Мне удалось найти всего несколько достойных внимания источников, и это официальный док, readme для parquet-mr, официальная презентация и презентация про оптимизацию от Ryan Blue. Кроме этого, у нас есть JavaDoc к ParquetOutputFormat.java и гора исходников. Давайте разберемся, как же оно работает? Читать далее Как класть Parquet 2: внутреннее устройство

Как класть Parquet 1: когда использовать

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

Apache Parquet это файловый формат для поколоночного хранения структурированных данных, оптимизированный под использование с HDFS и Apache Spark. Он великолепно подходит для хранения тяжелых таблиц, их быстрого чтения и фильтрации. По производительности и компактности он оставляет далеко позади себя все неколоночные форматы. При этом он подходит далеко не для всех случаев. Давайте поговорим, когда имеет смысл его использовать, а когда лучше обойтись другими форматами. Читать далее Как класть Parquet 1: когда использовать

Как разрабатывают скоринговые модели для банков

Поучаствовал в дискуссии на тему разработки скоринговых моделей для банков. Полный текст дискуссии — в сообществе Open Data Science, вступайте.

Крупные розничные банки разрабатывают скоринговые модели сами, в первую очередь потому, что это их core business. Скоринговая модель оперирует многомиллионными бюджетами, цена ошибки огромна, параметры зависят от кредитной политики, в итоге естественно желание полностью контролировать модель. Кроме того, допуск аутсорсеров к модели может повлечь за собой утечки, которые могут использоваться мошенниками или конкурентами. Читать далее Как разрабатывают скоринговые модели для банков

Параметрический полиморфизм как он есть

Предыдущая заметка подтолкнула меня изучить матчасть, какие подходы к параметрической типизации существуют в природе. Не вдаваясь в теорию, параметрическая типизация — это механизм, который позволяет разрабатывать программы (обычно, алгоритмы и структуры данных) безотносительно типов данных, с которыми они работают. На практике применяется два подхода — мономорфизм и параметрический полиморфизм.  Читать далее Параметрический полиморфизм как он есть

Примитивы и generic’и в Scala

Когда я только знакомился со Scala, я был впечатлён тем, что ребятки разрешили проблему с поддержкой примитивов в generic’ах, или параметризированных типах, как их здесь называют. Это то, чего в Java очень не хватало. Недавно я заинтересовался деталями реализации, как конкретно это работает. И тут мне открылось страшное. Читать далее Примитивы и generic’и в Scala