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

内置转换

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

Amazon Glue 提供以下内置转换:

ApplyMapping

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

DropFields

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

DropNullFields

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

筛选条件

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

Join

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

Map

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

MapToCollection

DynamicFrame 中的每个 DynamicFrameCollection 应用转换。

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 的格式重新设置为三个字段:一个 int、一个 string 和一个 double

有关在任务脚本中使用这些转换的示例,请参阅 Amazon 博客 Building an Amazon Glue ETL pipeline locally without an Amazon account