GOOGLE ADS

vendredi 22 avril 2022

Quelqu'un peut-il faire la distinction entre RDD Lineage et un DAG (Direct Acyclic Graph) ?

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

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...