Utilizzo del formato ORC in AWS Glue - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo del formato ORC in AWS Glue

AWS Glue recupera i dati dalle origini e scrive i dati sulle destinazioni archiviati e trasportati in vari formati di dati. Se i tuoi dati vengono archiviati o trasportati nel formato dati ORC, questo documento descrive le funzioni disponibili per l'utilizzo dei tuoi dati in AWS Glue.

AWS Glue supporta l'uso del formato ORC. Questo formato è un formato dati basato su colonne orientato alle prestazioni. Per un'introduzione al formato da parte dell'autorità degli standard, consulta Apache Orc.

Puoi utilizzare AWS Glue per leggere i file ORC da Amazon S3 e da origini di streaming, nonché scrivere file ORC in Amazon S3. Puoi leggere e scrivere archivi bzip e gzip contenenti file ORC da S3. Puoi configurare il comportamento di compressione sul Parametri di connessione di S3 invece che nella configurazione discussa in questa pagina.

La tabella seguente mostra le operazioni comuni di AWS Glue che supportano l'opzione del formato ORC.

Lettura Scrittura Lettura in streaming Gruppo di file piccoli Segnalibri di processo
Supportato Supportato Supportato Non supportato. Supportato*

*Supportato in AWS Glue versione 1.0 e successive

Esempio: lettura di cartelle o file ORC da S3

Prerequisiti: occorreranno i percorsi S3 (s3path) nelle cartelle o nei file ORC da leggere.

Configurazione: nelle opzioni della funzione, specifica format="orc". Nelle tue connection_options, utilizza la chiave paths per specificare s3path. Puoi configurare il modo in cui il reader interagisce con S3 in connection_options. Per maggiori dettagli, consulta Tipi di connessione e opzioni per ETL in AWS Glue: Indicazioni di riferimento alle opzioni di connessione ad Amazon S3.

Il seguente script ETL di AWS Glue mostra il processo di lettura di cartelle o file ORC da S3:

Python

Per questo esempio, utilizza il metodo 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" )

Puoi utilizzare DataFrames anche in uno script (pyspark.sql.DataFrame).

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

Per questo esempio, utilizza l'operazione 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() } }

Puoi utilizzare DataFrames anche in uno script (pyspark.sql.DataFrame).

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

Esempio: scrittura di cartelle e file ORC in S3

Prerequisiti: avrai bisogno di un DataFrame inizializzato (dataFrame) o di un DynamicFrame (dynamicFrame). Avrai bisogno anche del tuo percorso di output S3 previsto, s3path.

Configurazione: nelle opzioni della funzione, specifica format="orc". Nelle opzioni di connessione, usa la chiave paths per specificare s3path. Puoi modificare ulteriormente il modo in cui il writer interagisce con S3 nelle connection_options. Per i dettagli, consulta le Opzioni del formato dati per input e output ETL in AWS Glue: Indicazioni di riferimento alle opzioni di connessione ad Amazon S3. L'esempio di codice seguente mostra il processo:

Python

Per questo esempio, utilizza il metodo 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" } )

Puoi utilizzare DataFrames anche in uno script (pyspark.sql.DataFrame).

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

Per questo esempio, utilizza l'operazione 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) } }

Puoi utilizzare DataFrames anche in uno script (pyspark.sql.DataFrame).

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

Riferimento alla configurazione XML

Non ci sono valori di format_options per format="orc". Tutte le opzioni accettate dal codice SparkSQL sottostante possono tuttavia essere passate tramite il parametro mappa connection_options.