在 Amazon Glue 中使用 Ion 格式 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon Glue 中使用 Ion 格式

Amazon Glue 从源中检索数据,并将数据写入以各种数据格式存储和传输的目标。如果您的数据以 Ion 数据格式存储或传输,本文档将向您介绍供您使用 Amazon Glue 中的数据的可用功能。

Amazon Glue 支持使用 Ion 格式。此格式以可互换的二进制和纯文本表示形式表示(并非基于行或列的)数据结构。有关作者对此格式的说明,请参阅 Amazon Ion。(有关更多信息,请参阅 Amazon Ion 规范。)

您可以使用 Amazon Glue 从 Amazon S3 中读取 Ion 文件。您可以从 S3 中读取包含 Ion 文件的 bzipgzip 存档。请在 S3 连接参数 上而非本页中讨论的配置中配置压缩行为。

下表显示了支持 Ion 格式选项的常见 Amazon Glue 功能。

读取 写入 流式处理读取 对小文件进行分组 作业书签
支持 不支持 不支持 支持 不支持

示例:从 S3 读取 Ion 文件或文件夹

先决条件:需要待读取的 Ion 文件或文件夹的 S3 路径 (s3path)。

配置:在函数选项中,请指定 format="json"。在您的 connection_options 中,请使用 paths 键指定 s3path。您可以在 connection_options 中配置读取器与 S3 的交互方式。有关详细信息,请参阅 Amazon Glue 中 ETL 的连接类型和选项:Amazon S3 连接选项参考

以下 Amazon 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 值。