在 AWS Glue 中使用 Ion 格式 - AWS Glue

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 AWS Glue 中使用 Ion 格式

AWS Glue 會從各來源擷取資料,並將資料寫入以各種資料格式儲存和傳輸的目標。如果您的資料以 Ion 資料格式存放或傳輸,本文件將向您介紹在 AWS Glue 中使用資料的可用功能。

AWS Glue 支援使用 Ion 格式。此格式以可互換的二進位和純文字表示法表示資料結構(並非基於資料列或資料行的資料結構)。如需作者的格式簡介,請參閱 Amazon Ion。(如需詳細資訊,請參閱 Amazon Ion 規格。)

您可以使用 AWS Glue 從 Amazon S3 讀取 Ion 檔案。您可以讀取 bzipgzip 來自 S3 的包含 Ion 檔案的封存。您可以在 S3 連線參數 上設定壓縮行為,而不是在本頁討論的組態中設定。

下表顯示支援 Ion 格式選項的常見 AWS Glue 操作。

讀取 寫入 串流讀取 對小型檔案進行分組 任務書籤
支援 不支援 不支援 支援 不支援

範例:從 S3 讀取 Ion 檔案或資料夾

先決條件:您需要指向希望讀取的 Ion 檔案或資料夾的 S3 路徑 (s3path)。

組態:在您的函數選項中,指定 format="json"。在您的 connection_options 中,使用 paths 索引鍵指定 s3path。您可以在 connection_options 中設定讀取器與 S3 的互動方式。如需詳細資訊,請參閱 AWS Glue 中 ETL 的連線類型和選項:Amazon S3 連線選項參考

以下 AWS Glue ETL 指令碼顯示從 S3 讀取 Ion 檔案或資料夾的流程:

Python

在此範例中,使用 create_dynamic_frame.from_options 方法。

# Example: Read ION from S3 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="ion" )
Scala

在此範例中,使用 getSourceWithFormat 操作。

// Example: Read ION from S3 import com.amazonaws.services.glue.util.JsonOptions import com.amazonaws.services.glue.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) val dynamicFrame = glueContext.getSourceWithFormat( connectionType="s3", format="ion", options=JsonOptions("""{"paths": ["s3://s3path"], "recurse": true}""") ).getDynamicFrame() } }

Ion 組態參考

format="ion"format_options 值。