web-dev-qa-db-fra.com

DynamicFrame vs DataFrame

Quelle est la différence? Je sais que DynamicFrame a été créé pour AWS Glue, mais AWS Glue prend également en charge DataFrame. Quand DynamicFrame doit-il être utilisé dans AWS Glue?

8
Alex Oh

Vous pouvez vous référer à la documentation ici: DynamicFrame Class. Ça dit,

Un DynamicFrame est similaire à un DataFrame, sauf que chaque enregistrement est auto-descriptif, donc aucun schéma n'est requis au départ.

Vous souhaitez utiliser DynamicFrame lorsque,

  • Données non conformes à un schéma fixe .

Remarque: Vous pouvez également convertir le DynamicFrame en DataFrame en utilisant toDF()

5
karma4917

DynamicFrame est plus sûr lors de la gestion de travaux gourmands en mémoire. "La mémoire de l'exécuteur avec les trames dynamiques AWS Glue ne dépasse jamais le seuil de sécurité", alors que d'un autre côté, Spark DataFrame peut rencontrer un problème de "mémoire insuffisante" sur les exécuteurs. ( https : //docs.aws.Amazon.com/glue/latest/dg/monitor-profile-debug-oom-abnormality.html )

Les DynamicFrames sont conçus pour offrir une flexibilité maximale lors du traitement de données en désordre qui peuvent ne pas avoir de schéma déclaré. Les enregistrements sont représentés d'une manière auto-descriptive flexible qui préserve les informations sur les incohérences de schéma dans les données.

Par exemple, avec des exigences changeantes, une colonne d'adresse stockée sous forme de chaîne dans certains enregistrements peut être stockée sous forme de structure dans les lignes ultérieures. Plutôt que d'échouer ou de retomber dans une chaîne, DynamicFrames suivra les deux types et donne aux utilisateurs un certain nombre d'options sur la façon de résoudre ces incohérences, fournissant des options de résolution de grain fin via les transformations ResolveChoice.

DynamicFrames fournit également un certain nombre d'opérations ETL puissantes de haut niveau qui ne se trouvent pas dans DataFrames. Par exemple, la transformation Relationalisation peut être utilisée pour aplatir et faire pivoter des données imbriquées complexes dans des tables adaptées au transfert vers une base de données relationnelle. De plus, la transformation ApplyMapping prend en charge les renommages complexes et la conversion de manière déclarative.

Les DynamicFrames sont également intégrés au catalogue de données AWS Glue, donc la création de cadres à partir de tables est une opération simple. L'écriture dans des bases de données peut être effectuée via des connexions sans spécifier le mot de passe. De plus, les DynamicFrames sont intégrés aux signets de travaux, donc l'exécution de ces scripts dans le système de travaux peut permettre au script de suivre implicitement ce qui a été lu et écrit. ( https://github.com/aws-samples/aws -glue-samples/blob/master/FAQ_and_How_to.md )

4
Fang Zhang