API do Spark
Ao trabalhar com o Spark, você encontrará as três APIs: DataFrames, Datasets e RDDs.
O que são conjuntos de dados distribuídos resilientes?
Resilient Distributed Datasets (RDD) são uma coleção de registros que usam computação distribuída e é tolerante a falhas e imutável. Os RDDs podem operar em paralelo com APIs de baixo nível e seus recursos de atraso aceleram as operações do Spark. Além disso, os RDDs são compatíveis com duas operações:
- Transformação: uma operação lenta que retorna outro RDD. Este RDD não é calculado a menos que uma ação seja tomada. Alguns exemplos de transformações são map(), flatmap(), filter()
- Ações: operações que acionam cálculos e retornam valores. Alguns exemplos de ações são count, top(), savetofile()
Desvantagens dos RDDs
Ao usar RDDs, cada RDD deve ser otimizado. Além disso, diferentemente dos conjuntos de dados e dos DataFrames, os RDDs não inferem o esquema dos dados ingeridos. Portanto, a especificação do esquema é necessária.
O que são DataFrames?
Um DataFrame é uma coleção distribuída de linhas em colunas nomeadas. Simplificando, é como uma planilha de Excel com títulos de coluna, comparável a uma tabela em um banco de dados relacional ou a um DataFrame em R ou Python. O DataFrame tem três características em comum com o RDD:
- Imutável in nature: um DataFrame pode ser criado, mas não pode ser modificado após a criação. Assim como o RDD, apenas a conversão é possível.
- Avaliações lentas: a tarefa não é executada até que a ação seja acionada.
- Distribuição: O DataFrame, assim como o RDD, é distribuído.
Como criar um DataFrame
Existem várias maneiras de criar um DataFrame no Spark:
- Usando diferentes formatos de dados (por exemplo, carregando dados de JSON, CSV, RDBMS, XML ou Parquet).
- Carregando dados do RDD existente.
- Especificando o esquema de maneira programática.
Desvantagens dos DataFrames
A maior desvantagem da API DataFrame é que ela não é compatível com tempo de compilação com segurança. Isso limita os usuários quando a estrutura de dados é desconhecida.
O que são conjuntos de dados?
Datasets são uma coleção imutável e tipada de objetos mapeados para um esquema relacional. Os conjuntos de dados podem ser criados usando objetos JVM e manipulados usando transformações funcionais complexas. Eles podem ser criados de duas maneiras:
- De forma dinâmica.
- Carregando do arquivo JSON usando SparkSession.
Desvantagens dos conjuntos de dados
A principal desvantagem dos conjuntos de dados é que eles requerem conversão de tipo para string.