Apache Spark - краткое описание
Apache Spark - фреймворк (набор свыше 80-ти операторов(функций) для работы с данными (filter, distinct, union, intersection, reduce и.т.д.)), который разрабатывался для распределенной обработки больших данных. Основным преимуществом данного инструмента, является то, что данные можно кэшировать в оперативной памяти, что позволяет существенно ускорять вычисления в случае итеративных алгоритмов, какими и являются большинство алгоритмов машинного обучения. Суть его в том, что это переосмысленный Map&Reduce 2.0(от Hadoop) и работает он в 10x-100x раз быстрее в зависимости от работы в памяти или на диске.
Маленький троллинг Hadoop-a от команды Spark-a:
Нативно Spark поддерживает Scala, Python, Java, R. Очень удобно работать непосредственно в IPython Notebook, выгружая небольшую часть данных из кластера и обрабатывая, например, пакетом Pandas — получается довольно удобная связка.
Итак, начнем с того, что основным понятием в Spark'е является RDD (Resilient Distributed Dataset), который представляет собой Dataset, над которым можно делать преобразования двух типов (и, соответственно, вся работа с этими структурами заключается в последовательности этих двух действий).
Цепляет также тем, что не нужно думать в парадигме Map&Reduce. Spark позволяет писать понятный код нацеленный именно на выполнение поставленой бизнес-задачи. Фреймворк берёт на себя рутинную работу по распределению и фрагментации кода и данных, которые автоматически передаются на кластер.
Следующий код даёт ощутить всю "силу" этой "искры" ;)
Spark также имеет стек(набор) библиотек(набор готовых алгоритмов, подходов и практик), которые позволяют не разводить "зоопарк" из различных сторонних решений, изящно комбинировать их в рамках одного кода для достижение цели.
На данный момент это библиотеки Spark SQL, Spark Streaming(анализ в реальном времени), MLib(machine learning/машинное обучение), GrapX(graph/работа с графами).
Полезные ссылки:
Введение в Apache Spark
Spark MlLib - краткое описание
Social Network Analysis: Spark GraphX
Spark Streaming - краткое описание
Spark SQL - краткое описание
Spark - основные команды
Маленький троллинг Hadoop-a от команды Spark-a:
Нативно Spark поддерживает Scala, Python, Java, R. Очень удобно работать непосредственно в IPython Notebook, выгружая небольшую часть данных из кластера и обрабатывая, например, пакетом Pandas — получается довольно удобная связка.
Итак, начнем с того, что основным понятием в Spark'е является RDD (Resilient Distributed Dataset), который представляет собой Dataset, над которым можно делать преобразования двух типов (и, соответственно, вся работа с этими структурами заключается в последовательности этих двух действий).
Цепляет также тем, что не нужно думать в парадигме Map&Reduce. Spark позволяет писать понятный код нацеленный именно на выполнение поставленой бизнес-задачи. Фреймворк берёт на себя рутинную работу по распределению и фрагментации кода и данных, которые автоматически передаются на кластер.
Следующий код даёт ощутить всю "силу" этой "искры" ;)
text_file = spark.textFile("hdfs://...")
errors = text_file.filter(lambda line: "ERROR" in line)
# Подсчёт всех ошибок
errors.count()
# Подсчёт количества ошибок в MySQL
errors.filter(lambda line: "MySQL" in line).count()
# Выборка MySQL ошибок в виде массива строк. Удобно для визуализации или доп. анилиза
errors.filter(lambda line: "MySQL" in line).collect()
Spark также имеет стек(набор) библиотек(набор готовых алгоритмов, подходов и практик), которые позволяют не разводить "зоопарк" из различных сторонних решений, изящно комбинировать их в рамках одного кода для достижение цели.
На данный момент это библиотеки Spark SQL, Spark Streaming(анализ в реальном времени), MLib(machine learning/машинное обучение), GrapX(graph/работа с графами).
Полезные ссылки:
Введение в Apache Spark
Spark MlLib - краткое описание
Social Network Analysis: Spark GraphX
Spark Streaming - краткое описание
Spark SQL - краткое описание
Spark - основные команды
Коментарі
Дописати коментар