Utilisation du format ORC dans AWS Glue - AWS Glue

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.

Utilisation du format ORC dans AWS Glue

AWS Glue récupère les données des sources et écrit les données sur des cibles stockées et transportées dans différents formats de données. Si vos données sont stockées ou transportées au format de données, ORC ce document vous présente les fonctionnalités disponibles pour utiliser vos données dans AWS Glue.

AWS Glue prend en charge l'utilisation du format ORC. Ce format est un format de données en colonnes, orienté vers la performance. Pour accéder à une présentation du format par l'autorité standard, consultez Apache Orc.

Vous pouvez utiliser AWS Glue pour la lecture des fichiers ORC à partir d’Amazon S3 et des sources de flux, ainsi que pour l’écriture des fichiers ORC sur Amazon S3. Vous pouvez lire et écrire des archives bzip et gzip contenant des fichiers CSV provenant de S3. Vous configurez le comportement de compression sur Paramètres de connexion S3 plutôt que dans la configuration décrite sur cette page.

La table suivante indique les fonctions courantes de AWS Glue qui prennent en charge l'option de format ORC.

Lire Écrire Lecture en streaming Groupement des petits fichiers Signets de tâche
Pris en charge Pris en charge Pris en charge Non pris en charge Pris en charge*

* Pris en charge dans AWS Glue version 1.0+

Exemple : lecture de fichiers ou de dossiers ORC à partir de S3

Prérequis : vous aurez besoin des chemins S3 (s3path) vers des fichiers ou dossiers ORC que vous souhaitez lire.

Configuration : dans vos options de fonction, spécifiez format="orc". Dans vos connection_options, utilisez la clé paths pour spécifier votre s3path. Vous pouvez configurer la manière dont le lecteur interagit avec S3 dans les connection_options. Pour plus d'informations, consultez les Types et options de connexion pour ETL dans AWS Glue : Référence des options de connexion Amazon S3.

Le script AWS Glue ETL suivant montre le processus de lecture de fichiers ou dossiers ORC à partir de S3.

Python

Pour cet exemple, utilisez la méthode create_dynamic_frame.from_options.

from pyspark.context import SparkContext from awsglue.context import GlueContext sc = SparkContext.getOrCreate() glueContext = GlueContext(sc) dynamicFrame = glueContext.create_dynamic_frame.from_options( connection_type="s3", connection_options={"paths": ["s3://s3path"]}, format="orc" )

Vous pouvez également utiliser DataFrames dans un script (pyspark.sql.DataFrame).

dataFrame = spark.read\ .orc("s3://s3path")
Scala

Pour cet exemple, utilisez l'opération getSourceWithFormat.

import com.amazonaws.services.glue.util.JsonOptions import com.amazonaws.services.glue.GlueContext import org.apache.spark.sql.SparkContext object GlueApp { def main(sysArgs: Array[String]): Unit = { val spark: SparkContext = new SparkContext() val glueContext: GlueContext = new GlueContext(spark) val dynamicFrame = glueContext.getSourceWithFormat( connectionType="s3", format="orc", options=JsonOptions("""{"paths": ["s3://s3path"]}""") ).getDynamicFrame() } }

Vous pouvez également utiliser DataFrames dans un script (pyspark.sql.DataFrame).

val dataFrame = spark.read .orc("s3://s3path")

Exemple : écriture de fichiers et dossiers ORC dans S3

Prérequis : vous aurez besoin d'un DataFrame (dataFrame) ou un d'un DynamicFrame (dynamicFrame) lancé. Vous aurez également besoin de votre chemin de sortie S3, s3path.

Configuration : dans vos options de fonction, spécifiez format="orc". Dans vos options de connexion, utilisezpathstouche à spécifiers3path. Vous pouvez modifier davantage la manière dont le scripteur interagit avec S3 dans les connection_options. Pour plus de détails, voir Options de format pour les entrées et sorties ETL dansAWSGlue :Référence des options de connexion Amazon S3. L'exemple de code suivant montre le processus :

Python

Pour cet exemple, utilisez la méthode write_dynamic_frame.from_options.

from pyspark.context import SparkContext from awsglue.context import GlueContext sc = SparkContext.getOrCreate() glueContext = GlueContext(sc) glueContext.write_dynamic_frame.from_options( frame=dynamicFrame, connection_type="s3", format="orc", connection_options={ "path": "s3://s3path" } )

Vous pouvez également utiliser DataFrames dans un script (pyspark.sql.DataFrame).

df.write.orc("s3://s3path/")
Scala

Pour cet exemple, utilisez la méthode getSinkWithFormat.

import com.amazonaws.services.glue.util.JsonOptions import com.amazonaws.services.glue.{DynamicFrame, GlueContext} import org.apache.spark.SparkContext object GlueApp { def main(sysArgs: Array[String]): Unit = { val spark: SparkContext = new SparkContext() val glueContext: GlueContext = new GlueContext(spark) glueContext.getSinkWithFormat( connectionType="s3", options=JsonOptions("""{"path": "s3://s3path"}"""), format="orc" ).writeDynamicFrame(dynamicFrame) } }

Vous pouvez également utiliser DataFrames dans un script (pyspark.sql.DataFrame).

df.write.orc("s3://s3path/")

Référence de configuration ORC

Il n'y a aucune valeur format_options pour format="orc". Cependant, les options acceptées par le code SparkSQL sous-jacent peuvent lui être transmises au moyen du paramètre de carte connection_options.