Конвейеры данных на Spark
Задачи, обрабатывающие большие объёмы данных по расписанию, написанные напрямую на Scala для использования нативного API Spark, а не языка-обёртки.
Программирование и разработка ПО
Бэкенды с большим объёмом данных, крупномасштабные сервисы и дата-инжиниринг на Spark: выделенный разработчик, проект с фиксированным объёмом, поддержка в подборе кандидатов или консалтинг.
Сегодня компании чаще всего решают нанять Scala-разработчика в Дубае из-за дата-инжиниринга, поскольку Apache Spark, один из самых распространённых инструментов для обработки больших объёмов данных, сам написан на Scala. При этом Scala остаётся языком общего назначения, который на собственном сайте описан как масштабируемый от небольших скриптов до крупных, конкурентных приложений, и он всё ещё встречается в бэкенд-сервисах, рассчитанных на реальную пропускную способность, а не только в конвейерах данных.
Из-за такого разделения стоит точно определить, какая задача вам действительно нужна. Разработчик, годами настраивавший конвейеры Spark, не обязательно лучший выбор для общего бэкенд-сервиса, и наоборот. На этой странице рассмотрены оба направления, с навыками и вопросами, которые отделяют настоящий опыт Scala от поверхностного знакомства, полученного в команде на Java.
Что делает Scala-разработчик
Дата-инжиниринг и бэкенд, два реальных варианта применения.
Задачи, обрабатывающие большие объёмы данных по расписанию, написанные напрямую на Scala для использования нативного API Spark, а не языка-обёртки.
Конкурентные сервисы на JVM, где функциональные возможности Scala помогают удерживать сложную логику управляемой под реальной нагрузкой.
Новые сервисы или компоненты, написанные на Scala рядом с существующей кодовой базой на Java, поскольку оба языка работают на одной JVM.
Непрерывная обработка данных в реальном времени, а не запланированные пакетные задачи, частое сочетание Scala и Spark.
Пересборка медленного или хрупкого конвейера данных, который перерос свой первоначальный инструментарий.
Сервисы, предоставляющие данные или бизнес-логику другим системам, рассчитанные на реальную конкурентную нагрузку.
Важные навыки
Для дата-инжиниринга и бэкенда нужна разная глубина опыта.
| Навык или инструмент | Как выглядит хороший уровень | Почему это важно |
|---|---|---|
| Названная специализация | Прямо говорит, в чём его реальная сила: дата-инжиниринг на Spark или общие бэкенд-сервисы | Повседневная работа и типичные подводные камни сильно различаются между этими направлениями |
| Spark, где это уместно | Понимает, как Spark реально распределяет и выполняет работу, а не только как написать задачу, работающую локально | Конвейер, работающий на небольшом локальном наборе данных, может серьёзно отказать при продакшен-масштабе |
| Функциональное программирование | Осознанно использует неизменяемость и сопоставление с образцом для упрощения логики, а не как украшение | Функциональные возможности Scala настоящая сила при умелом использовании и источник путаницы, если применяются ради самих себя |
| Совместимость с JVM и Java | Свободно вызывает существующий код на Java и сам вызывается из него | Большинство реальных проектов на Scala соседствуют с кодовой базой на Java, а не начинаются с чистого листа |
| Инструменты сборки | Уверенно работает с sbt и осознанно управляет зависимостями | У инструментов сборки Scala есть реальная кривая обучения, которая быстро проявляется в незнакомой кодовой базе |
Собственное руководство по программированию Apache Spark документирует Scala как один из нативных API Spark первого класса, и это стоит знать, когда кандидат заявляет об опыте со Spark, полученном в основном через Python или SQL. Внимательно проверьте эту таблицу, прежде чем нанять Scala-разработчика в Дубае именно на роль в сфере данных.
Форматы работы с нами
Выделенный разработчик подходит для постоянной платформы данных или бэкенд-сервиса с непрерывным потоком задач по конвейерам или функциям. Проект с фиксированным объёмом подходит для определённого результата, такого как один конвейер Spark, миграция данных или конкретный бэкенд-сервис, переданный с документацией. Поддержка в подборе кандидатов подходит компании, которая строит собственную постоянную команду по дата-инжинирингу или бэкенду. Консалтинг подходит компании с существующей задачей на Spark или сервисом на Scala, который работает медленно или непредсказуемо и нуждается в стороннем обзоре перед решением о переделке.
Оценка кандидата
Проверки, отделяющие реальную глубину в Spark или бэкенде от поверхностного знакомства.
Что-то, что работало с реальным набором данных или обрабатывало реальный трафик, с рассказом о том, что было сложным.
Спросите, как он раньше диагностировал медленную задачу Spark. Расплывчатый ответ здесь настоящий тревожный знак.
Близкое к вашей реальной задаче с данными или сервисом, оцениваемое по тому, насколько чисто используются функциональные возможности Scala, а не по тому, избегает ли он их вовсе.
Реальная работа на Scala почти всегда где-то соприкасается с Java в существующих системах компании в ОАЭ.
Попросите показать конфигурацию sbt из прошлых проектов и рассказать, как он управляет конфликтами зависимостей.
Ничто из этого не требует большой команды по данным, поэтому вполне можно нанять Scala-разработчика в Дубае и самостоятельно пройти все пять проверок.
Сертификаты
Органа сертификации для самого языка не существует.
Scala Center, который поддерживает язык вместе с VirtusLab, не проводит программу сертификации для отдельных разработчиков, согласно собственному сайту, поэтому заявленный сертификат по Scala не выдавался ни одной из этих организаций.
Реальная задача на Spark или продакшен-сервис, а также чёткий рассказ о диагностированной проблеме производительности, говорят о кандидате куда больше, чем любой сертификат для работы с данными или бэкендом.
Особенности ОАЭ
Актуально везде, где конвейер или сервис работает с данными клиентов.
Конвейер данных, который проводит записи клиентов или сотрудников через несколько этапов, на каждом из них всё ещё обрабатывает персональные данные по федеральному закону ОАЭ, а не только в момент сбора. Проработайте это с тем, кто отвечает за соответствие требованиям, прежде чем нанять Scala-разработчика в Дубае для сборки конвейера.
Для платформы данных на Scala, работающей с чувствительными записями, стоит заранее решить, работает ли она на инфраструктуре внутри ОАЭ или за его пределами, поскольку это влияет на решения по хранению и обработке с первого дня. Обсудите это, прежде чем нанять Scala-разработчика в Дубае и вместе определить объём сборки.
Эта роль относится к нашей категории программирования и разработки ПО, части раздела наём разработчиков в Дубае. Именно для работы со Spark наша страница Spark-разработчика углубляется в конвейеры и платформу сильнее, чем общий наём Scala-разработчика. Сопоставимый язык на JVM для сборки бэкенда представлен на странице нашего Java-разработчика, а для более широкой платформы данных наша категория инженера данных может быть лучшей отправной точкой, чем один язык.
Прямые ответы
Это его самое распространённое применение сегодня, во многом потому что сам Apache Spark написан на Scala, но язык остаётся языком общего назначения, на котором также строят конкурентные бэкенд-сервисы с высокой пропускной способностью, поэтому стоит называть реальную задачу, когда вы формулируете бриф роли.
Spark поддерживает Scala, Python, Java, R и SQL через собственные API, поэтому Python вполне разумный выбор для многих конвейеров на Spark. Scala чаще важен там, где сам конвейер должен быть быстрым и сильно кастомизированным, а не довольно стандартной задачей извлечения, преобразования и загрузки данных.
Пул кандидатов меньше, а по-настоящему сильный Scala-разработчик встречается реже, чем по-настоящему сильный Java-разработчик, поэтому чёткий бриф важнее обычного, когда вы решаете нанять Scala-разработчика в Дубае.
Да, это распространённая практика, поскольку Scala работает на JVM и напрямую взаимодействует с библиотеками и кодом на Java. Многие проекты на Scala существуют внутри более широкого окружения на Java, а не заменяют его.
Попросите конкретный пример, где кандидат использовал функциональные возможности Scala, такие как неизменяемость или сопоставление с образцом, для решения реальной задачи, а не общее заявление о знании парадигмы.
Источники
Фиксированная цена в письменном виде
Получили. Мы уже готовим ваше предложение.
В рабочее время вы получите его в течение 45 минут. Проверьте почту, там письмо с подтверждением.