内置转换 - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

内置转换

AWS Glue 提供一组内置转换,可用于处理数据。您可以从 ETL 脚本中调用这些转换。您的数据在称为 DynamicFrame 的数据结构中从转换传递到转换,该结构是 Apache Spark SQL DataFrame 的扩展。 包含您的数据,并引用其架构来处理您的数据。DynamicFrame有关这些转换的更多信息,请参阅AWS Glue PySpark 转换参考

AWS Glue 提供以下内置转换:

ApplyMapping

将源列和数据类型从DynamicFrame映射到返回的 DynamicFrame 中的目标列和数据类型。 您指定映射参数,该参数是包含源列、源类型、目标列和目标类型的元组的列表。

DropFields

DynamicFrame 中删除字段。 输出 DynamicFrame 包含比输入更少的字段。您可以使用 paths 参数指定要删除的字段。paths 参数使用点表示法指向架构树结构中的字段。例如,要删除字段 B,请在树中字段 A 的某个子字段中,为路径键入 A.B

DropNullFields

DynamicFrame 中删除 null 字段。 输出 DynamicFrame 不包含架构中 null 类型的字段。

Filter

DynamicFrame 中选择记录并返回筛选的 DynamicFrame。 您指定一个函数,例如 Lambda 函数,该函数确定记录是输出(函数返回 true)还是不是输出(函数返回 false)。

加入

两个 DynamicFrames 的 Equijoin。 您可以在每个帧的架构中指定关键字段以比较相等性。输出 DynamicFrame 包含密钥匹配的行。

映射

将函数应用于 DynamicFrame 的记录并返回转换后的 DynamicFrame。 提供的函数将应用于每个输入记录并将其转换为输出记录。映射转换可以添加字段、删除字段以及使用外部 API 操作执行查找。如果存在异常,则继续处理,并且会将记录标记为错误。

MapToCollection

DynamicFrameCollection 中的每个 DynamicFrame 应用转换。

Relationalize

DynamicFrame 转换为关系 (行和列) 表单。根据数据的架构,此转换会展平嵌套结构,并从数组结构创建 DynamicFrames。输出是可导致数据写入多个表的 DynamicFrames 的集合。

RenameField

重命名 DynamicFrame 中的字段。 输出是 DynamicFrame,其中的指定字段进行了重命名。您需要为要重命名的字段提供新名称和在架构中的路径。

ResolveChoice

使用 ResolveChoice 指定在包含多个类型的值时如何处理列。您可以选择将列强制转换为单个数据类型、丢弃一个或多个类型,或者在单独的列或结构中保留所有类型。您可以为每一列选择不同的解决策略,或者指定应用于所有列的全局策略。

SelectFields

DynamicFrame 中选择要保留的字段。输出是仅具有所选字段的 DynamicFrame。您需要为要保留的字段提供在架构中的路径。

SelectFromCollection

DynamicFrame 集合中选择一个 DynamicFrames。 输出是选定的 DynamicFrame。 您需要为要选择的 DynamicFrame 提供索引。

Spigot

DynamicFrame 写入示例数据。 输出是 Amazon S3 中的 JSON 文件。您指定 Amazon S3 位置以及如何采样 DynamicFrame。 采样可以是文件开头的指定记录数,也可以是用于选取要写入的记录的概率因子。

SplitFields

将字段拆分成两个 DynamicFrames。 输出是 DynamicFrames 的集合:一个具有选定字段,另一个具有剩余字段。您需要为要选定的字段提供在架构中的路径。

SplitRows

根据谓词拆分 DynamicFrame 中的行。输出是两个 DynamicFrames 的集合:一个具有选定的行,另一个具有剩余的行。您可以根据架构中的字段提供比较。例如:A > 4

Unbox

拆开 DynamicFrame 中的字符串字段。 输出是 DynamicFrame,其中的选定字符串字段重新设置了格式。该字符串字段可以解析并替换为几个字段。您需要为要重新设置格式的字符串字段及其当前格式类型提供在架构中的路径。例如,您可能有一个 CSV 文件,该文件具有一个 JSON 格式为 {"a": 3, "b": "foo", "c": 1.2} 的字段。 此转换可以将 JSON 的格式重新设置为三个字段:intstringdouble

有关在作业脚本中使用这些转换的示例,请参阅 AWS 博客在本地构建不带 AWS 账户的 AWS Glue ETL 管道