

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwenden des ORC-Formats in Glue AWS
<a name="aws-glue-programming-etl-format-orc-home"></a>

AWS Glue ruft Daten aus Quellen ab und schreibt Daten auf Ziele, die in verschiedenen Datenformaten gespeichert und transportiert werden. Wenn Ihre Daten im ORC-Datenformat gespeichert oder transportiert werden, stellt Ihnen dieses Dokument die verfügbaren Funktionen für die Verwendung Ihrer Daten in AWS Glue vor.

AWS Glue unterstützt die Verwendung des ORC-Formats. Dieses Format ist ein leistungsorientiertes, spaltenbasiertes Datenformat. Eine Einführung in das Format durch die Standardautorität finden Sie unter [Apache Orc](https://orc.apache.org/docs/).

Sie können AWS Glue verwenden, um ORC-Dateien von Amazon S3 und aus Streaming-Quellen zu lesen sowie ORC-Dateien auf Amazon S3 zu schreiben. Sie können `bzip`- und `gzip`-Archive mit ORC-Dateien aus S3 lesen und schreiben. Sie konfigurieren das Komprimierungsverhalten auf [S3-Verbindungsparameter](aws-glue-programming-etl-connect-s3-home.md#aws-glue-programming-etl-connect-s3) statt in der auf dieser Seite besprochenen Konfiguration.

Die folgende Tabelle zeigt, welche gängigen AWS Glue-Operationen die ORC-Formatoption unterstützen.


| Lesen | Write (Schreiben) | Streaming gelesen | Gruppieren von kleinen Dateien | Auftrags-Lesezeichen | 
| --- | --- | --- | --- | --- | 
| Unterstützt | Unterstützt | Unterstützt | Nicht unterstützt | Unterstützt\$1 | 

\$1 Wird in AWS Glue Version 1.0\$1 unterstützt

## Beispiel: Lesen von ORC-Dateien oder Ordnern aus S3
<a name="aws-glue-programming-etl-format-orc-read"></a>

** Voraussetzungen:** Sie benötigen die S3-Pfade (`s3path`) zu den ORC-Dateien oder -Ordnern, die Sie lesen möchten. 

**Konfiguration:** Geben Sie in Ihren Funktionsoptionen `format="orc"` an. Verwenden Sie in Ihrem `connection_options` den `paths`-Schlüssel, um Ihren `s3path` anzugeben. Sie können konfigurieren, wie der Reader mit S3 in der `connection_options` interagiert. Einzelheiten finden Sie unter Verbindungstypen und Optionen für ETL in AWS Glue:[Referenz zur Amazon-S3-Verbindungsoption](aws-glue-programming-etl-connect-s3-home.md#aws-glue-programming-etl-connect-s3).

 Das folgende AWS Glue-ETL-Skript zeigt den Vorgang des Lesens von ORC-Dateien oder -Ordnern aus S3: 

------
#### [ Python ]

Verwenden Sie für dieses Beispiel die Methode [create\$1dynamic\$1frame.from\$1options](aws-glue-api-crawler-pyspark-extensions-glue-context.md#aws-glue-api-crawler-pyspark-extensions-glue-context-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"
)
```

Sie können es auch DataFrames in einem Skript (`pyspark.sql.DataFrame`) verwenden.

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

------
#### [ Scala ]

Verwenden Sie für dieses Beispiel die Operation [getSourceWithFormat](glue-etl-scala-apis-glue-gluecontext.md#glue-etl-scala-apis-glue-gluecontext-defs-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()
  }
}
```

Sie können es auch DataFrames in einem Skript (`pyspark.sql.DataFrame`) verwenden.

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

------

## Beispiel: Schreiben von ORC-Dateien und -Ordnern in S3
<a name="aws-glue-programming-etl-format-orc-write"></a>

**Voraussetzungen:** Sie benötigen ein initialisiertes DataFrame (`dataFrame`) oder DynamicFrame (`dynamicFrame`). Sie benötigen auch Ihren erwarteten S3-Ausgabepfad, `s3path`. 

**Konfiguration:** Geben Sie in Ihren Funktionsoptionen `format="orc"` an. Verwenden Sie in Ihren Verbindungsoptionen die `paths`-Schlüssel zum Angeben von `s3path`. Sie können die Art und Weise, wie der Writer mit S3 in `connection_options` interagiert, weiter verändern. Einzelheiten finden Sie unter Datenformatoptionen für ETL-Eingaben und -Ausgaben in AWS Glue:[Referenz zur Amazon-S3-Verbindungsoption](aws-glue-programming-etl-connect-s3-home.md#aws-glue-programming-etl-connect-s3). Das folgende Code-Beispiel veranschaulicht den Prozess: 

------
#### [ Python ]

Verwenden Sie für dieses Beispiel die Methode [write\$1dynamic\$1frame.from\$1options](aws-glue-api-crawler-pyspark-extensions-glue-context.md#aws-glue-api-crawler-pyspark-extensions-glue-context-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"
    }
)
```

Sie können es auch DataFrames in einem Skript (`pyspark.sql.DataFrame`) verwenden.

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

------
#### [ Scala ]

Verwenden Sie für dieses Beispiel die [getSinkWithFormat-Methode](glue-etl-scala-apis-glue-gluecontext.md#glue-etl-scala-apis-glue-gluecontext-defs-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)
  }
}
```

Sie können es auch DataFrames in einem Skript (`pyspark.sql.DataFrame`) verwenden.

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

------

## ORC-Konfigurationsreferenz
<a name="aws-glue-programming-etl-format-orc-reference"></a>

Es gibt keine `format_options`-Werte für `format="orc"`. Es können jedoch alle Optionen, die vom zugrunde liegenden SparkSQL-Code akzeptiert werden, im Rahmen des `connection_options`-Map-Parameters übergeben werden. 