По сути, Spark - это базовый движок, который позволяет выполнять крупномасштабную обработку данных с высокой производительностью. Он обеспечивает интерфейс для программирования с неявным параллелизмом данных и отказоустойчивостью.
GraphX, MLlib, Spark Streaming и Spark SQL - это модули, построенные на основе этого движка, каждый из которых имеет различную цель . Каждая из этих библиотек имеет новые объекты и функции, которые обеспечивают поддержку определенных типов структур или функций.
Например:
- GraphX - это распределенный модуль обработки графов , который позволяет представлять граф и применять эффективные преобразования, разбиения и алгоритмы, специализированные для такого рода структур.
- MLlib - это распределенный модуль машинного обучения поверх Spark, который реализует определенные алгоритмы, такие как классификация, регрессия, кластеризация, ...
- Spark SQL вводит понятие DataFrames , наиболее важной структуры в этом модуле, которая позволяет применять операции SQL (например, select , , где , groupBy , ...)
- Spark Streaming - это расширение ядра Spark, которое принимает данные в мини-пакетах и выполняет преобразования этих мини-пакетов данных. Spark Streaming имеет встроенную поддержку для работы с платформами Kafka, Flume и других
Вы можете комбинировать эти модули в соответствии с вашими потребностями. Например, если вы хотите обработать большой граф для применения алгоритма кластеризации, вы можете использовать представление, предоставленное GraphX , и использовать MLlib для применения K-средних для этого представления.
Doc