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 fonti e li scrive su destinazioni archiviate e trasportate in vari formati di dati. Se i dati vengono archiviati o trasportati nel formato dati ORC, questo documento presenta le funzionalità disponibili per l'utilizzo dei dati in Glue. AWS

AWS Glue supporta l'utilizzo 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 usare AWS Glue per leggere file ORC da Amazon S3 e da sorgenti di streaming, nonché scrivere file ORC su 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 quali operazioni comuni di AWS Glue supportano l'opzione di formato ORC.

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

* Supportato nella versione AWS Glue 1.0+

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 i dettagli, vedi Tipi di connessione e opzioni per ETL in AWS Glue:Indicazioni di riferimento alle opzioni di connessione ad Amazon S3.

Il seguente script AWS Glue ETL mostra il processo di lettura di file o cartelle 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 anche usarlo DataFrames in uno script (). pyspark.sql.DataFrame

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

Per questo esempio, utilizzate 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() } }

È inoltre possibile utilizzare DataFrames in uno script (pyspark.sql.DataFrame).

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

Esempio: scrittura di cartelle e file ORC in S3

Prerequisiti: è necessario un DataFrame (dataFrame) o DynamicFrame (dynamicFrame) inizializzato. 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, vedi Opzioni di formato dei dati per ingressi e uscite 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 anche usare DataFrames in uno script (). pyspark.sql.DataFrame

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

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

È inoltre possibile utilizzare DataFrames 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.