Diferenças entre RDD, quadros de dados e conjuntos de dados no Spark

Conteúdo

Visão geral

  • Entenda a diferença entre APIs 3 faíscas: RDD, quadros de dados e conjuntos de dados
  • Veremos como criar RDD, quadros de dados e conjuntos de dados.

Introdução

Passaram 11 anos desde Apache Spark começou a existir e, impressionante e continuamente, tornou-se a primeira escolha dos desenvolvedores de big data. Os desenvolvedores sempre adoraram fornecer APIs simples e poderosas que podem realizar qualquer tipo de análise de big data..

Conjuntos de dados de dataframe RDD

Inicialmente, sobre 2011 surgiu com o conceito de RDD, depois em 2013 com Dataframes e mais tarde em 2015 com o conceito de conjuntos de dados. Nenhum deles depreciou, ainda podemos usar todos eles. Neste post, vamos entender e ver a diferença entre os três.

Tabela de conteúdo

  1. O que são RDD?
  2. Quando usar RDD?
  3. O que são frames de dados?
  4. O que são conjuntos de dados?
  5. RDD vs Dataframes vs Datasets?

O que são RDD?

RDDs ou conjuntos de dados distribuídos resilientes são a estrutura de dados fundamental do Spark. É a coleção de objetos que é capaz de armazenar dados particionados nos vários nós do cluster e também permite que eles façam o processamento em paralelo..

É tolerante a falhas se você realizar várias transformações no RDD e, em seguida,, para qualquer circustância, algum nó falha. El RDD, nesse caso, é capaz de se recuperar automaticamente.

RDDExistem 3 alternativas para criar um ASD:

  1. Paralelo a uma coleta de dados existente
  2. Referência ao arquivo de dados externos armazenados
  3. Criação de RDD a partir de um RDD existente

Quando usar RDD?

Podemos usar RDD nas seguintes situações:

  1. Quando queremos fazer transformações de baixo nível no conjunto de dados. Leia mais sobre transformações RDD: PySpark para realizar transformações
  2. Não infere automaticamente o esquema dos dados ingeridos, precisamos especificar o esquema de cada conjunto de dados quando criamos um RDD. Aprenda como inferir o esquema RDD aqui: Criação de pipelines de aprendizado de máquina com o PySpark

O que são frames de dados?

Foi introduzido pela primeira vez na versão Spark 1.3 para superar as limitações do Spark RDD. Spark Dataframes são a coleção distribuída de pontos de dados, mas aqui, os dados são organizados em colunas nomeadas. Habilite os desenvolvedores a depurar o código em todo o tempo de execução, o que não era permitido com RDDs.

Os frames de dados podem ler e gravar os dados em vários formatos, como CSV, JSON, EURO, Tabelas HDFS e HIVE. Já está otimizado para processar grandes conjuntos de dados para a maioria das tarefas de pré-processamento, então não precisamos escrever funções complexas por conta própria.

Usa um otimizador de catalisador para fins de otimização. Se você quiser ler mais sobre o otimizador de catalisador, Eu recomendo fortemente que você leia este post: Tutorial prático para analisar dados usando Spark SQL

Vamos ver como criar um quadro de dados usando o PySpark.

O que são conjuntos de dados?

Spark Datasets é uma extensão da API Data Frames com os benefícios de RDDs e conjuntos de dados. É rápido e oferece uma interface de tipo seguro. Segurança de tipo significa que o compilador irá validar os tipos de dados de todas as colunas no conjunto de dados apenas durante a compilação e irá lançar um erro se houver alguma discrepância nos tipos de dados.

conjuntos de dados

Os usuários de RDD encontrarão algo semelhante ao código, mas é mais rápido que RDD. Pode processar com eficiência dados estruturados e não estruturados.

Ainda não podemos criar conjuntos de dados Spark em Python. A API Dataset está ativada apenas em Scala e Java.

RDD x frames de dados x conjuntos de dados

RDD Quadros de dados Conjuntos de dados
Representação de dados RDD é uma coleção distribuída de itens de dados sem qualquer esquema. É também a coleção distribuída organizada nas colunas nomeadas. É uma extensão de Dataframes com mais recursos, como segurança de tipo e interface orientada a objetos.
Melhoria Nenhum mecanismo de otimização integrado para RDD. Os próprios desenvolvedores devem escrever o código otimizado. Usa um otimizador de catalisador para otimização. Também usa um otimizador de catalisador para fins de otimização.
Projeção de contorno Aqui, precisamos definir o esquema manualmente. Ele descobrirá automaticamente o esquema do conjunto de dados. Além disso, ele encontrará automaticamente o esquema do conjunto de dados por meio do mecanismo SQL.
Operação de agregação O RDD é mais lento do que os quadros de dados e conjuntos de dados para realizar operações simples, como agrupar dados. Fornece uma API simples para realizar operações de agregação. Executa agregação mais rápido do que RDDs e conjuntos de dados. O conjunto de dados é mais rápido do que RDDs, mas um pouco mais lento do que os Dataframes.

Notas finais

Neste post, vimos a diferença entre as três principais APIs do Apache Spark. Então, para concluir, se você quiser uma semântica rica, abstrações de alto nível, segurança de tipo, elija Dataframes o Datasets. Se você precisar de mais controle sobre a parte de pré-processamento, você sempre pode usar os RDDs.

Eu recomendo fortemente que você verifique esses recursos adicionais no Apache Spark para aumentar seu conhecimento.:

Se você achou esta postagem informativa, Compartilhe com seus amigos, e também se você quiser dar sugestões sobre o que deve ser abordado, sinta-se à vontade para deixá-los nas notas abaixo.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.