Был выпущен Apache Spark 2.0 с обновленной поддержкой SQL, структурированной потоковой передачей и улучшенной производительностью.
Apache Spark — это движок обработки данных с открытым исходным кодом, который стал очень популярным с момента его первого выпуска. По данным Apache, он улучшает производительность Hadoop MapReduce, выполняя программы до 100 раз быстрее в памяти и в 10 раз быстрее на диске. На графике ниже показана логистическая регрессия в Hadoop и Spark (согласно Apache).
В новой версии улучшена поддержка стандартного SQL с новым анализатором ANSI SQL и поддержкой подзапросов. Синтаксический анализатор поддерживает как ANSI-SQL, так и Hive QL, в то время как поддержка подзапросов охватывает некоррелированные и коррелированные скалярные подзапросы; НЕ В подзапросах предикатов; Подзапросы предикатов IN; и (НЕ) СУЩЕСТВУЕТ предикатных подзапросов.
Поддержка SQL: 2003 означает, что Spark 2.0 может выполнять все 99 запросов TPC-DS, и в целом значительно упростит перенос приложений, использующих SQL, в Spark.
Spark гарантирует стабильность своих неэкспериментальных API для этого (и всех 2.X) выпусков. Была проведена обширная работа над API-интерфейсами, при этом DataFrames и Datasets были объединены в Scala и Java. В Python и R, учитывая отсутствие безопасности типов, DataFrame является основным программным интерфейсом.
API SparkSession также был переработан и имеет новую точку входа, заменяющую SQLContext и HiveContext. Accumulator API также был переработан с более простой иерархией типов и поддержкой специализации для примитивных типов.
В области машинного обучения разработчики заявляют, что пакет spark.ml с его «конвейерными» API-интерфейсами станет основным API-интерфейсом машинного обучения, а в центре внимания будущих разработок будет API-интерфейс на основе DataFrame.
Также была добавлена постоянство конвейера, поэтому пользователи могут сохранять и загружать конвейеры и модели машинного обучения на всех языках программирования, поддерживаемых Spark. MLlib — это масштабируемая библиотека машинного обучения Spark. Он вписывается в API Spark и взаимодействует с NumPy в Python (начиная с Spark 0.9). Вы можете использовать любой источник данных Hadoop (например, HDFS, HBase или локальные файлы), что упрощает подключение к рабочим процессам Hadoop.
Самым большим улучшением SparkR в этой версии является поддержка пользовательских функций. Согласно примечаниям к выпуску, есть три определяемые пользователем функции: dapply, gapply и lapply. Первые два могут использоваться для создания пользовательских функций на основе разделов с помощью dapply и gapply, например обучение разделенной модели. Последний можно использовать для настройки гиперпараметров.
Другие улучшения в поддержке R добавляют возможность использовать обобщенные линейные модели (GLM), наивный байесовский метод, регрессию выживания и K-средние в R.
Добавлен API структурированной потоковой передачи, созданный на основе Spark SQL и оптимизатора Catalyst. Это означает, что вы можете программировать на основе потоковых источников и приемников, используя тот же DataFrame / Dataset API, что и в статических источниках данных. Это позволит использовать оптимизатор Catalyst для автоматического увеличения планов запросов.
Новая версия доступна либо на Apache Spark, либо на Databricks, где команда Databricks вносила свой вклад в Spark в течение последних месяцев.