Новая версия Apache Spark теперь доступна в технической предварительной версии.
Apache Spark — это движок обработки данных с открытым исходным кодом, и, по словам разработчиков, до финальной версии Spark 2.0 выйдет несколько недель.
Одна из функций, добавленных в новую версию, — это стандартная поддержка SQL. Есть новый анализатор ANSI SQL и поддержка подзапросов. Spark 2.0 может выполнять все 99 запросов TPC-DS, для которых требуются многие функции SQL: 2003. Это значительно упростит перенос приложений, использующих SQL, в Spark.
API-интерфейсы в Spark 2.0 были оптимизированы, чтобы упростить использование Spark. DataFrames и Datasets были унифицированы для Scala и Java. Унификация не применима для Python и R, поскольку безопасность типов во время компиляции не является функцией для этих языков. Там, где применяется унификация, DataFrame теперь является псевдонимом типа для Dataset of Row.
API SparkSession был переработан с новой точкой входа, которая заменяет SQLContext и HiveContext, хотя старые SQLContext и HiveContext были сохранены для обратной совместимости. Accumulator API также был переработан с более простой иерархией типов и поддержкой специализации для примитивных типов.
Поддержка машинного обучения была улучшена с помощью пакета spark.ml с его «конвейерными» API-интерфейсами, которые были выдвинуты в качестве основного API-интерфейса машинного обучения. Хотя исходный пакет spark.mllib сохранен, дальнейшая разработка будет сосредоточена на API на основе DataFrame. Добавлена персистентность Pipleline, поэтому пользователи могут сохранять и загружать конвейеры и модели машинного обучения на всех языках программирования, поддерживаемых Spark. MLlib — это масштабируемая библиотека машинного обучения Spark. Он вписывается в API Spark и взаимодействует с NumPy в Python (начиная с Spark 0.9). Вы можете использовать любой источник данных Hadoop (например, HDFS, HBase или локальные файлы), что упрощает подключение к рабочим процессам Hadoop. В приведенном ниже примере кода показан код Python для прогнозирования с логистической регрессией с использованием MLib.
Поддержка R — еще одна область, которую необходимо улучшить, с поддержкой обобщенных линейных моделей (GLM), наивного байеса, регрессии выживания и K-средних в R.
Еще одно улучшение — это API-интерфейсы структурированной потоковой передачи, в которых используется новый подход к потоковой передаче. Это начальная версия API структурированной потоковой передачи, которая является расширением DataFrame / Dataset API. Ключевые функции будут включать в себя поддержку обработки на основе времени событий, неупорядоченных / отложенных данных, создание сеансов и тесную интеграцию с непотоковыми источниками и приемниками данных.
Предварительный просмотр доступен либо на Apache Spark, либо на Databricks, где команда Databricks вносила свой вклад в Spark в течение последних месяцев.