Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Travaillez avec des données CSV dans AWS Glue

Mode de mise au point
Travaillez avec des données CSV dans AWS Glue - Amazon Athena

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Cette page décrit comment créer un schéma AWS Glue à partir de fichiers CSV comportant des guillemets autour des valeurs de données pour chaque colonne ou à partir de fichiers CSV contenant des valeurs d'en-tête.

Gestion des données CSV entre guillemets

Supposons qu'un fichier CSV comporte des champs de données placés entre guillemets, comme dans l'exemple suivant.

"John","Doe","123-555-1231","John said \"hello\"" "Jane","Doe","123-555-9876","Jane said \"hello\""

Pour exécuter une requête dans Athena sur une table créée à partir d'un fichier CSV contenant des valeurs entre guillemets, vous devez modifier les propriétés de la table AWS Glue pour utiliser l'Open CSVSer De. Pour plus d'informations sur SerDe OpenCSV, consultez. Ouvrez le fichier CSV SerDe pour le traitement du fichier CSV

Pour modifier les propriétés du tableau dans la AWS Glue console
  1. Dans le volet de navigation de la AWS Glue console, sélectionnez Tables.

  2. Choisissez le lien de la table que vous souhaitez modifier, puis sélectionnez Action, Modifier la table.

  3. Sur la page Modifier le tableau, procédez au modifications suivantes :

    • Dans la Bibliothèque de sérialisation, saisissez org.apache.hadoop.hive.serde2.OpenCSVSerde.

    • Pour Serde parameters (Paramètres Serde), saisissez les valeurs suivantes pour les clés escapeChar, quoteChar et separatorChar :

      • Pour escapeChar, saisissez une barre oblique inverse (\).

      • Pour quoteChar, saisissez un guillemet double (").

      • Pour separatorChar, saisissez une virgule (,).

  4. Choisissez Save (Enregistrer).

Pour en savoir plus, consultez Affichage et modification des détails de table dans le Guide du développeur AWS Glue .

Vous pouvez également mettre à jour les propriétés des AWS Glue tables par programmation. Utilisez l'opération AWS Glue UpdateTableAPI ou la AWS CLI commande update-table pour modifier le SerDeInfo bloc dans la définition de la table, comme dans l'exemple JSON suivant.

"SerDeInfo": { "name": "", "serializationLib": "org.apache.hadoop.hive.serde2.OpenCSVSerde", "parameters": { "separatorChar": "," "quoteChar": "\"" "escapeChar": "\\" } },

Gestion des fichiers CSV avec en-têtes

Lorsque vous définissez une table dans Athena avec une instruction CREATE TABLE, vous pouvez utiliser la propriété de table skip.header.line.count pour ignorer les en-têtes dans vos données CSV, comme dans l'exemple suivant.

... STORED AS TEXTFILE LOCATION 's3://amzn-s3-demo-bucket/csvdata_folder/'; TBLPROPERTIES ("skip.header.line.count"="1")

Vous pouvez également supprimer les en-têtes CSV au préalable afin que les informations d'en-tête ne soient pas incluses dans les résultats des requêtes Athena. Pour cela, vous pouvez utiliser des tâches AWS Glue , qui exécutent le travail d'extraction, de transformation et de chargement (ETL). Vous pouvez écrire des scripts en AWS Glue utilisant un langage qui est une extension du dialecte PySpark Python. Pour plus d'informations, consultez la section Création de tâches dans AWS Glue dans le manuel du AWS Glue développeur.

L'exemple suivant montre une fonction dans un AWS Glue script qui écrit un cadre dynamique en utilisant from_options et définit l'option de writeHeader format sur false, ce qui supprime les informations d'en-tête :

glueContext.write_dynamic_frame.from_options(frame = applymapping1, connection_type = "s3", connection_options = {"path": "s3://amzn-s3-demo-bucket/MYTABLEDATA/"}, format = "csv", format_options = {"writeHeader": False}, transformation_ctx = "datasink2")
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.