Vue d'ensemble
- Comprendre la différence entre les API 3 des étincelles: RDD, blocs de données et ensembles de données
- Nous allons voir comment créer RDD, blocs de données et ensembles de données.
introduction
Ont réussi 11 ans depuis Apache Spark a commencé à exister et, de manière impressionnante et continue, est devenu le premier choix des développeurs de Big Data. Les développeurs ont toujours aimé fournir des API simples et puissantes capables d'effectuer tout type d'analyse de Big Data..
Initialement, dans 2011 est venu avec le concept de RDD, après dans 2013 avec Dataframes et plus tard dans 2015 avec le concept de Datasets. Aucun d'entre eux ne s'est déprécié, nous pouvons toujours les utiliser tous. Dans ce billet, nous comprendrons et verrons la différence entre les trois.
Table des matières
- Que sont les RDD?
- Quand utiliser RDD?
- Que sont les trames de données?
- Que sont les ensembles de données?
- RDD vs Dataframes vs Datasets?
Que sont les RDD?
Les RDD ou ensembles de données distribués résilients sont la structure de données fondamentale de Spark. C'est la collection d'objets qui est capable de stocker des données partitionnées dans les multiples nœuds du cluster et leur permet également de faire le traitement en parallèle..
Il est tolérant aux pannes si vous effectuez plusieurs transformations sur le RDD puis, pour toute circonstance, certains nœuds échouent. El RDD, dans ce cas, est capable de récupérer automatiquement.
Il y a 3 alternatives pour créer un TSA:
- Parallèlement à une collecte de données existante
- Référence au fichier de données externe stocké
- Créer un RDD à partir d'un RDD existant
Quand utiliser RDD?
Nous pouvons utiliser RDD dans les situations suivantes:
- Lorsque nous voulons faire des transformations de bas niveau sur l'ensemble de données. En savoir plus sur les transformations RDD: PySpark pour effectuer des transformations
- Ne déduit pas automatiquement le schéma des données ingérées, nous devons spécifier le schéma de chaque ensemble de données lorsque nous créons un RDD. Apprenez à déduire le schéma RDD ici: Construire des pipelines de machine learning avec PySpark
Que sont les trames de données?
Il a été introduit pour la première fois dans la version Spark 1.3 pour surmonter les limitations de Spark RDD. Les Spark Dataframes sont la collection distribuée de points de données, mais ici, les données sont organisées en colonnes nommées. Permettre aux développeurs de déboguer le code tout au long de l'exécution, ce qui n'était pas autorisé avec les RDD.
Les trames de données peuvent lire et écrire les données dans divers formats comme CSV, JSON, EURO, Tables HDFS et HIVE. Il est déjà optimisé pour traiter de grands ensembles de données pour la plupart des tâches de prétraitement, nous n'avons donc pas besoin d'écrire nous-mêmes des fonctions complexes.
Utilise un optimiseur de catalyseur à des fins d'optimisation. Si vous souhaitez en savoir plus sur l'optimiseur de catalyseur, Je vous recommande fortement de lire ce post: Tutoriel pratique pour analyser des données avec Spark SQL
Voyons comment créer un bloc de données à l'aide de PySpark.
Que sont les ensembles de données?
Spark Datasets est une extension de l'API Data Frames avec les avantages des RDD et des ensembles de données. C'est rapide et fournit une interface de type sécurisé. La sécurité de type signifie que le compilateur validera les types de données de toutes les colonnes de l'ensemble de données uniquement lors de la compilation et générera une erreur en cas de divergence dans les types de données.
Les utilisateurs de RDD le trouveront quelque peu similaire au code, mais c'est plus rapide que RDD. Peut traiter efficacement les données structurées et non structurées.
Nous ne pouvons toujours pas créer d'ensembles de données Spark en Python. L'API de jeu de données n'est activée que dans Scala et Java.
RDD vs Data Frames vs Data Sets
RDD | Trames de données | Ensembles de données | |
Représentation des données | RDD est une collection distribuée d'éléments de données sans aucun schéma. | C'est aussi la collection distribuée organisée dans les colonnes nommées. | C'est une extension de Dataframes avec plus de fonctionnalités telles que la sécurité de type et l'interface orientée objet. |
Amélioration | Pas de moteur d'optimisation intégré pour RDD. Les développeurs doivent écrire eux-mêmes le code optimisé. | Utilise un optimiseur de catalyseur pour l'optimisation. | Utilise également un optimiseur de catalyseur à des fins d'optimisation. |
Projection du contour | Ici, nous devons définir le schéma manuellement. | Il découvrira automatiquement le schéma de l'ensemble de données. | De plus, il trouvera automatiquement le schéma du jeu de données via le moteur SQL. |
Opération d'agrégation | RDD est plus lent que les trames de données et les ensembles de données pour effectuer des opérations simples comme le regroupement de données. | Fournit une API simple pour effectuer des opérations d'agrégation. Effectue l'agrégation plus rapidement que les RDD et les ensembles de données. | L'ensemble de données est plus rapide que les RDD mais légèrement plus lent que les Dataframes. |
Remarques finales
Dans ce billet, nous avons vu la différence entre les trois principales API d'Apache Spark. Ensuite, compléter, si vous voulez une sémantique riche, abstractions de haut niveau, sécurité des types, elija Dataframes o Datasets. Si vous avez besoin de plus de contrôle sur la partie prétraitement, vous pouvez toujours utiliser les RDD.
Je vous recommande de consulter ces ressources supplémentaires sur Apache Spark pour renforcer vos connaissances:
Si vous avez trouvé cet article informatif, Partage-le avec tes amis, et aussi si vous voulez donner des suggestions sur ce qui devrait être couvert, n'hésitez pas à les laisser dans les notes ci-dessous.
En rapport
Articles Similaires:
- Classification des images CNN | Classification d'images à l'aide de CNN
- Créer un modèle de détection de visage dans une vidéo à l'aide de Python
- Que sont les bases de données relationnelles? Introduction aux bases de données relationnelles
- Extraction de données à partir de fichiers PDF non structurés