Quelqu'un peut-il clarifier la différence et les similitudes entre RDD Lineage et DAG (Direct Acyclic graphs) ?
Solution du problème
DAG (graphe acyclique direct) est la représentation de la façon dont Spark exécutera votre programme - chaque sommet de ce graphe est une opération distincte et les arêtes représentent les dépendances de chaque opération. Votre programme (donc le DAG qui le représente) peut fonctionner sur plusieurs entités (RDDs, Dataframes, etc). La lignée RDD n'est qu'une partie d'un DAG (une ou plusieurs opérations) qui conduit à la création de ce RDD particulier.
Ainsi, un DAG (un programme Spark) peut créer plusieurs RDD, et chaque RDD aura sa lignée (c'est-à-dire ce chemin dans votre DAG qui mène à ce RDD). Si certaines partitions de votre RDD sont corrompues ou perdues, Spark peut réexécuter la partie du DAG qui conduit à la création de ces partitions.
Si le seul but de votre programme Spark est de créer un seul RDD et que c'est la dernière étape, alors l'ensemble du DAG est une lignée de ce RDD.
Vous pouvez en savoir plus ici - https://data-flair.training/blogs/rdd-lineage/
Aucun commentaire:
Enregistrer un commentaire