Знакомство с Apache Spark
Мы наконец-то приступаем к переводу серьезной книги о фреймворке Spark:
Сегодня мы предлагаем вашему вниманию перевод обзорной статьи о возможностях Spark, которую, полагаем, можно с полным правом назвать слегка потрясающей.
Я впервые услышал о Spark в конце 2013 года, когда заинтересовался Scala – именно на этом языке написан Spark. Несколько позже я принялся ради интереса разрабатывать проект из области Data Science, посвященный прогнозированию выживаемости пассажиров «Титаника». Оказалось, это отличный способ познакомиться с программированием на Spark и его концепциями. Настоятельно рекомендую познакомиться с ним всем начинающим Spark-разработчикам.
Сегодня Spark применяется во многих крупнейших компаниях, таких, как Amazon, eBay и Yahoo! Многие организации эксплуатируют Spark в кластерах, включающих тысячи узлов. Согласно FAQ по Spark, в крупнейшем из таких кластеров насчитывается более 8000 узлов. Действительно, Spark – такая технология, которую стоит взять на заметку и изучить.

В этой статье предлагается знакомство со Spark, приводятся примеры использования и образцы кода.
Что такое Apache Spark? Введение
Spark – это проект Apache, который позиционируется как инструмент для «молниеносных кластерных вычислений». Проект разрабатывается процветающим свободным сообществом, в настоящий момент является наиболее активным из проектов Apache.
Spark предоставляет быструю и универсальную платформу для обработки данных. По сравнению с Hadoop Spark ускоряет работу программ в памяти более чем в 100 раз, а на диске – более чем в 10 раз.
Кроме того, код на Spark пишется быстрее, поскольку здесь в вашем распоряжении будет более 80 высокоуровневых операторов. Чтобы оценить это, давайте рассмотрим аналог “Hello World!” из мира BigData: пример с подсчетом слов (Word Count). Программа, написанная на Java для MapReduce, содержала бы около 50 строк кода, а на Spark (Scala) нам потребуется всего лишь:
При изучении Apache Spark стоит отметить еще один немаловажный аспект: здесь предоставляется готовая интерактивная оболочка (REPL). При помощи REPL можно протестировать результат выполнения каждой строки кода без необходимости сначала программировать и выполнять все задание целиком. Поэтому написать готовый код удается гораздо быстрее, кроме того, обеспечивается ситуативный анализ данных.
Кроме того, Spark имеет следующие ключевые черты:
- В настоящее время предоставляет API для Scala, Java и Python, также готовится поддержка других языков (например, R)
- Хорошо интегрируется с экосистемой Hadoop и источниками данных (HDFS, Amazon S3, Hive, HBase, Cassandra, etc.)
- Может работать на кластерах под управлением Hadoop YARN или Apache Mesos, а также работать в автономном режиме
Ядро Spark дополняется набором мощных высокоуровневых библиотек, которые бесшовно стыкуются с ним в рамках того же приложения. В настоящее время к таким библиотекам относятся SparkSQL, Spark Streaming, MLlib (для машинного обучения) и GraphX – все они будут подробно рассмотрены в этой статье. Сейчас также разрабатываются другие библиотеки и расширения Spark.

Ядро Spark
Ядро Spark – это базовый движок для крупномасштабной параллельной и распределенной обработки данных. Ядро отвечает за:
- управление памятью и восстановление после отказов
- планирование, распределение и отслеживание заданий кластере
- взаимодействие с системами хранения данных
-
– это операции (например, отображение, фильтрация, объединение и т.д.), совершаемые над RDD; результатом трансформации становится новый RDD, содержащий ее результат. – это операции (например, редукция, подсчет и т.д.), возвращающие значение, получаемое в результате некоторых вычислений в RDD.
Трансформации в Spark осуществляются в «ленивом» режиме — то есть, результат не вычисляется сразу после трансформации. Вместо этого они просто «запоминают» операцию, которую следует произвести, и набор данных (напр., файл), над которым нужно совершить операцию. Вычисление трансформаций происходит только тогда, когда вызывается действие, и его результат возвращается основной программе. Благодаря такому дизайну повышается эффективность Spark. Например, если большой файл был преобразован различными способами и передан первому действию, то Spark обработает и вернет результат лишь для первой строки, а не станет прорабатывать таким образом весь файл.
По умолчанию каждый трансформированный RDD может перевычисляться всякий раз, когда вы выполняете над ним новое действие. Однако RDD также можно долговременно хранить в памяти, используя для этого метод хранения или кэширования; в таком случае Spark будет держать нужные элементы на кластере, и вы сможете запрашивать их гораздо быстрее.
SparkSQL – это компонент Spark, поддерживающий запрашивание данных либо при помощи SQL, либо посредством Hive Query Language. Библиотека возникла как порт Apache Hive для работы поверх Spark (вместо MapReduce), а сейчас уже интегрирована со стеком Spark. Она не только обеспечивает поддержку различных источников данных, но и позволяет переплетать SQL-запросы с трансформациями кода; получается очень мощный инструмент. Ниже приведен пример Hive-совместимого запроса:
Spark Streaming
Spark Streaming поддерживает обработку потоковых данных в реальном времени; такими данными могут быть файлы логов рабочего веб-сервера (напр. Apache Flume и HDFS/S3), информация из соцсетей, например, Twitter, а также различные очереди сообщений вроде Kafka. «Под капотом» Spark Streaming получает входные потоки данных и разбивает данные на пакеты. Далее они обрабатываются движком Spark, после чего генерируется конечный поток данных (также в пакетной форме) как показано ниже.

API Spark Streaming точно соответствует API Spark Core, поэтому программисты без труда могут одновременно работать и с пакетными, и с потоковыми данными.
MLlib – это библиотека для машинного обучения, предоставляющая различные алгоритмы, разработанные для горизонтального масштабирования на кластере в целях классификации, регрессии, кластеризации, совместной фильтрации и т.д. Некоторые из этих алгоритмов работают и с потоковыми данными — например, линейная регрессия с использованием обычного метода наименьших квадратов или кластеризация по методу k-средних (список вскоре расширится). Apache Mahout (библиотека машинного обучения для Hadoop) уже ушла от MapReduce, теперь ее разработка ведется совместно с Spark MLlib.
GraphX – это библиотека для манипуляций над графами и выполнения с ними параллельных операций. Библиотека предоставляет универсальный инструмент для ETL, исследовательского анализа и итерационных вычислений на основе графов. Кроме встроенных операций для манипуляций над графами здесь также предоставляется библиотека обычных алгоритмов для работы с графами, например, PageRank.
Как использовать Apache Spark: пример с обнаружением событий
Теперь, когда мы разобрались, что такое Apache Spark, давайте подумаем, какие задачи и проблемы будут решаться с его помощью наиболее эффективно.
Недавно мне попалась статья об эксперименте по регистрации землетрясений путем анализа потока Twitter. Кстати, в статье было продемонстрировано, что этот метод позволяет узнать о землетрясении более оперативно, чем по сводкам Японского Метеорологического Агентства. Хотя технология, описанная в статье, и не похожа на Spark, этот пример кажется мне интересным именно в контексте Spark: он показывает, как можно работать с упрощенными фрагментами кода и без кода-клея.
Во-первых, потребуется отфильтровать те твиты, которые кажутся нам релевантными – например, с упоминанием «землетрясения» или «толчков». Это можно легко сделать при помощи Spark Streaming, вот так:
Затем нам потребуется произвести определенный семантический анализ твитов, чтобы определить, актуальны ли те толчки, о которых в них говорится. Вероятно, такие твиты, как «Землетрясение!» или «Сейчас трясет» будут считаться положительными результатами, а «Я на сейсмологической конференции» или «Вчера ужасно трясло» — отрицательными. Авторы статьи использовали для этой цели метод опорных векторов (SVM). Мы поступим также, только реализуем еще и потоковую версию. Полученный в результате образец кода из MLlib выглядел бы примерно так:
Другие варианты использования Apache Spark
Потенциально сфера применения Spark, разумеется, далеко не ограничивается сейсмологией.
Вот ориентировочная (то есть, ни в коем случае не исчерпывающая) подборка других практических ситуаций, где требуется скоростная, разноплановая и объемная обработка больших данных, для которой столь хорошо подходит Spark:
В игровой индустрии: обработка и обнаружение закономерностей, описывающих игровые события, поступающие сплошным потоком в реальном времени; в результате мы можем немедленно на них реагировать и делать на этом хорошие деньги, применяя удержание игроков, целевую рекламу, автокоррекцию уровня сложности и т.д.
В электронной коммерции информация о транзакциях, поступающая в реальном времени, может передаваться в потоковый алгоритм кластеризации, например, по k-средним или подвергаться совместной фильтрации, как в случае ALS. Затем результаты даже можно комбинировать с информацией из других неструктутрированных источников данных — например, с отзывами покупателей или рецензиями. Постепенно эту информацию можно применять для совершенствования рекомендаций с учетом новых тенденций.
В финансовой сфере или при обеспечении безопасности стек Spark может применяться для обнаружения мошенничества или вторжений, либо для аутентификации с учетом анализа рисков. Таким образом можно получать первоклассные результаты, собирая огромные объемы архивированных логов, комбинируя их с внешними источниками данных, например, с информацией об утечках данных или о взломанных аккаунтах (см., например, https://haveibeenpwned.com/), а также использовать информацию о соединениях/запросах, ориентируясь, например, на геолокацию по IP или на данные о времени
Итак, Spark помогает упростить нетривиальные задачи, связанные с большой вычислительной нагрузкой, обработкой больших объемов данных (как в реальном времени, так и архивированных), как структурированных, так и неструктурированных. Spark обеспечивает бесшовную интеграцию сложных возможностей – например, машинного обучения и алгоритмов для работы с графами. Spark несет обработку Big Data в массы. Попробуйте – не пожалеете!
О системе
СПАРК, собирая всю доступную информацию о компаниях и извлекая из нее знания, помогает бизнесу снижать риски и эффективно работать с контрагентами.
Пользуясь СПАРКом, вы получаете самые качественные и полные данные о компаниях. Наши технологии превращают информацию в сервисы и аналитику, чтобы вы могли видеть все риски и комплексно оценивать контрагентов, искать между ними связи, управлять дебиторской задолженностью.
Мы даем вам эксклюзивные данные: сведения о платежной дисциплине компаний, информацию о зарубежных юридических лицах, материалы СМИ.
В режиме одного окна СПАРК предоставляет доступ к данным кредитного бюро, нотариата, Росреестра.
С помощью API вы можете встроить СПАРК в свой бизнес-процесс, сделав его инструментом оперативного принятия решений и автоматизации внутренних процедур.
Поэтому СПАРК бесспорный лидер на рынке информационно-аналитических систем о компаниях. По данным опроса Deloitte, его используют для проверки благонадежности партнеров 71,5% компаний крупного и среднего бизнеса.
Описание системы СПАРК
СПАРК – это аналитическая система, предоставляющая информацию о российских компаниях и организациях, а также социально-экономические сведения о регионах и отраслях.
Программный продукт СПАРК-Интерфакс (англ. SPARK-Interfax) от Информационного агентствапредназначен для проверки юридических лиц, частных предпринимателей, директоров и акционеров в России, Украине, Казахстане, Беларуси, Кыргызстане, Узбекистане и Молдове. Программный комплекс СПАРК является универсальным решением, не привязанным к какой-либо конкретной корпоративной модели работы с контрагентами. Система предоставляет доступ к широкому спектру данных, собственным индексам и аналитическим инструментам, необходимым для принятия более быстрых и обоснованных деловых решений.
Основные функциональные возможности сервиса SPARK-Interfax:
Информация и Анализ. Упрощает процесс сортировки больших объёмов неструктурированных данных о фирмах и учреждениях.
Проверка аффилированности. Открывает и анализирует скрытые связи между компаниями и частными лицами.
Оценка рисков. Позволяет провести разностороннее изучение видов опасностей, которые могут повлиять на бизнес.
Управление соответствия требованиям. При оценке компании позволяет узнать, где на самом деле фактически находятся права собственности и контроля.
Контроль репутационных рисков. Помогает учитывать репутацию компании, которая имеет решающее значение для долгосрочного делового успеха.
Контроль изменений контрагентов. Информирует в режиме реального времени о любых существенных изменениях в структуре или финансовом состоянии партнёров, контрагентов и конкурентов.
Поиск деловых возможностей. Определяет компании, которые могут помочь реализовать планы по развитию бизнеса.
Настраиваемые отчёты. При оценке бизнеса помогает видеть актуальную и полезную информацию, не перегружая и не отвлекая на излишние детали.

Получение сведений о юридическом лице в программе проверки данных организаций СПАРК

Сведения о видах деятельности выбранной компании в системе проверки деятельности организаций СПАРК от Интерфакс

Просмотр выгрузки о компании из сервиса поиска контрагентов, клиентов и партнёров SPARK
![]()
![]()
![]()
Назначение системы СПАРК
Разработчик системы СПАРК
Компания-разработчик
Страна
Головной офис
Веб-сайт
Социальные сети
Вопросы и ответы
Какие языки поддерживает СПАРК?
СПАРК поддерживает в своём интерфейсе следующие языки: Русский, Английский.
Какие существуют варианты установки СПАРК?
Система СПАРК может быть установлена на: Мобильное устройство, Облако (SaaS).
Какие есть варианты оплаты за использование СПАРК?
Компанией Информационное агентство Интерфакс предлагаются следующие варианты тарификации за СПАРК: По запросу.
Подойдёт ли СПАРК для малого бизнеса?
Да, СПАРК может быть эффективно использован малым бизнесом, микропредприятиями и стартапами.
Возможно ли использовать СПАРК на устройствах с Android?
Да, имеется приложение СПАРК для мобильных устройств под Android.
Есть ли у СПАРК демонстрационная или бесплатная пробная версия?
Популярные аналоги СПАРК
Функции СПАРК
Информация о СПАРК
СПАРК
Информационное агентство Интерфакс, Россия
Краткий обзор СПАРК
СПАРК – это аналитическая система, предоставляющая информацию о российских компаниях и организациях, а также социально-экономические сведения о регионах и отраслях. Программный продукт СПАРК-Интерфакс (англ. SPARK-Interfax) от Информационного агентствапредназначен для проверки юридических лиц, частных предпринимателей, директоров и акционеров в России, Украине, Казахстане, Беларуси, Кыргызстане, Узбекистане и Молдове. Программный комплекс СПАРК является универсальным решением, не привязанным к какой-либо конкретной корпоративной модели работы с контрагентами. Система предоставляет доступ к широкому спектру данных, собственным индексам и аналитическим инструментам, необходимым для принятия более быстрых и обоснованных деловых решений.
Основные функциональные возможности сервиса SPARK-Interfax:
Информация и Анализ. Упрощает процесс сортировки больших объёмов неструктурированных данных о фирмах и учреждениях.
Проверка аффилированности. Открывает и анализирует скрытые связи между компаниями и частными лицами.
Оценка рисков. Позволяет провести разностороннее изучение видов опасностей, которые могут повлиять на бизнес.
Управление соответствия требованиям. При оценке компании позволяет узнать, где на самом деле фактически находятся права собственности и контроля.
Контроль репутационных рисков. Помогает учитывать репутацию компании, которая имеет решающее значение для долгосрочного делового успеха.
Контроль изменений контрагентов. Информирует в режиме реального времени о любых существенных изменениях в структуре или финансовом состоянии партнёров, контрагентов и конкурентов.
Поиск деловых возможностей. Определяет компании, которые могут помочь реализовать планы по развитию бизнеса.
Настраиваемые отчёты. При оценке бизнеса помогает видеть актуальную и полезную информацию, не перегружая и не отвлекая на излишние детали.
СПАРК
Приложение СПАРК для Android – Ваш универсальный мобильный инструмент для проверки контрагентов и предупреждения бизнес-рисков.
Загружая и устанавливая данное приложение Вы подтверждаете, что согласны с пользовательским соглашением: https://www.spark-interfax.ru/ru/license-agreement
СПАРК – это не просто набор данных, а передовая аналитическая система, которая не только даст оценку текущего уровня благонадежности контрагента, но и заблаговременно сообщит Вам о вероятных будущих проблемах и рисках, связанных с интересующими Вас компаниями или физическими лицами.
ВОЗМОЖНОСТИ МОБИЛЬНОГО ПРИЛОЖЕНИЯ
Оперативная оценка благонадежности любых российских компаний и ИП по ключевым показателям:
4 индекса благонадежности
Более 40 факторов риска
Присутствие в негативных реестрах
Признаки хозяйственной деятельности: персонал, имущество, арбитражи, исполнительные производства, залоги, результаты проверок, и др.
Финансовое состояние в динамике
Эта и другая информация доступна в Отчетах СПАРК (всем пользователям) и на карточке компании/персоны (подписчикам системы).
ОСОБЕННОСТИ И ПРЕИМУЩЕСТВА МОБИЛЬНОГО ПРИЛОЖЕНИЯ
Быстрый и удобный доступ в СПАРК с Вашего мобильного устройства без дополнительной авторизации
Поиск компании/ИП путем сканирования кассового чека (QR-код)
Выписки из ЕГРЮЛ/ЕГРИП и отчеты СПАРК с возможностью пересылки в PDF-формате
ВЫ – ПОДПИСЧИК СПАРК?
Оцените удобство мобильного приложения в качестве карманного «риск-анализатора». Используйте свою учетную запись для безлимитной работы в приложении.
У ВАС НЕТ ПОДПИСКИ НА СПАРК?
В приложении можно проверить статус компании/ИП, узнать ее реквизиты, скачать выписку ЕГРЮЛ/ЕГРИП, а также получить отчеты СПАРК, не оформляя подписку.
При сканировании кассового чека, Вы получите БЕСПЛАТНЫЙ полный доступ к сведениям о компании или ИП и анализу их благонадежности.
Система проверки контрагентов СПАРК – лидер и общепризнанный отраслевой стандарт на российском рынке услуг по обеспечению безопасности бизнеса.
СПАРК насчитывает более 30 000 активных пользователей, в числе которых:
180 ведущих российских банков из TOP-200 банков по активам
17 из 20 крупнейших страховых компаний
160 крупнейших российских компаний из «Forbes-200»
Данные из СПАРК признаются судебными и налоговыми органами РФ в качестве доказательств проявления должной осмотрительности.
СПАРК получил не только российское, но и международное признание. В 2018 г. система заняла первое место в ходе отбора наиболее перспективных инновационных сервисов, разработанных ведущими мировыми компаниями, работающими в сфере проверки контрагентов и управления кредитными рисками (голосование в ходе ежегодной конференции Dun & Bradstreet Worldwide Network — WWN).