Ao trabalhar com o Spark, você encontrará as três APIs: DataFrames, Datasets e RDDs.
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:
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.
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:
Existem várias maneiras de criar um DataFrame no Spark:
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.
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:
A principal desvantagem dos conjuntos de dados é que eles requerem conversão de tipo para string.
