O Apache Spark lançou a versão 1.3 do seu projeto. As principais melhorias são: a adição do DataFrames API; melhor maturidade do Spark SQL; assim como um número de novos métodos adicionados a biblioteca de aprendizado de maquina MLlib; e uma melhor integração do Spark Streaming com o Apache Kafka.
Uma das principais funcionalidades adicionadas foi o DataFrames API. Modelados nas estruturas de dados em R com o mesmo nome, o objetivo é fornecer um suporte aprimorado para trabalhar com dados tabulares. Um DataFrame consiste de uma tabela com tipos e nomes de colunas, e fornece operações para filtrar, agrupar ou agregar, similar as consultas em SQL.
DataFrames são fortemente integrados com o Spark SQL, uma engine de consulta SQL distribuída. Os DataFrames podem ser construídos através de um conjunto de resultados das consultas SQL, ou RDDs, ou carregados através de arquivos no formato Parquet. Até agora, os RDDs (resilient distributed datasets) eram os principais tipos de coleções de dados distribuídos no Spark, mas os DataFrames visam proporcionar melhor suporte para dados estruturados.
Spark MLlib, a biblioteca de aprendizado de maquina que é parte do Spark foi atualizado com diversos algorítimos de aprendizagem, como por exemplo, Latent Dirichlet Allocation, um método probabilístico de identificação de tópicos em documentos ou em grupos de documentos ou regressão logística multinomial para tarefas de previsão multiclasse. Existe algum suporte para álgebra de distribuição linear no qual os blocos de matrizes são armazenados de forma distribuída. Tal funcionalidade é necessária para as muitas tarefas de análise de dados complexas, incluindo fatoração de matriz, no qual muitas vezes envolvem matrizes grandes demais para serem alocadas na memória principal.
No topo desses algorítimos, o Spark também adicionou funcionalidades de alto nível para análise de dados como importação e exportação de modelos de previsão, e a Pipeline API introduzida na versão 1.2 permite que usuários especifiquem uma pipeline de transformação de dados de alto nível. Tais pipelines são usadas muitas vezes na ciência dos dados (data science) para extrair informações relevantes de dados brutos.
Além disso, Spark agora tem uma integração direta com o Apache Kafka para receber dados de eventos em tempo real.
O projeto Apache Spark começou em 2009, na UC Berkeley AMPLab. Podendo ser executado de modo standalone ou em cima de uma instalação existente de Hadoop e fornece um conjunto grande de operações em comparação com o modelo de processamento MapReduce do Hadoop orginal. Os dados são processados em memória sempre que possível, resultando em melhorias de desempenho comparados com o MapReduce que usa base em disco. Além disso, também permite processar dados de eventos praticamente em tempo real coletando dados no buffer e então periodicamente processando em pequenos lotes. Projetos similares são: o Apache Flink, que possui um conjunto de funcionalidades similares, mas também inclui consultas otimizadas e um mecanismo de processamento de fluxo continuo; ou projetos como Cascading e Scalding, que fornecem um conjunto similar de alto nível, mas que executa em cima do modelo de processamento do MapReduce.