Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Glue 从源中检索数据,并将数据写入以各种数据格式存储和传输的目标。如果您的数据以 Ion 数据格式存储或传输,本文档将向您介绍供您使用 Amazon Glue 中的数据的可用功能。
Amazon Glue 支持使用 Ion 格式。此格式以可互换的二进制和纯文本表示形式表示(并非基于行或列的)数据结构。有关作者对此格式的说明,请参阅 Amazon Ion。(有关更多信息,请参阅 Amazon Ion 规范。)
您可以使用 Amazon Glue 从 Amazon S3 中读取 Ion 文件。您可以从 S3 中读取包含 Ion 文件的 bzip
和 gzip
存档。请在 S3 连接参数 上而非本页中讨论的配置中配置压缩行为。
下表显示了支持 Ion 格式选项的常见 Amazon Glue 功能。
读取 |
写入 |
流式处理读取 |
对小文件进行分组 |
作业书签 |
支持 |
不支持 |
不支持 |
支持 |
不支持 |
先决条件:需要待读取的 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()
}
}
没有适用于 format="ion"
的 format_options
值。