内置转换
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