本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
内置转换
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 的格式重新设置为三个字段:int
、string
和double
。
有关在作业脚本中使用这些转换的示例,请参阅 AWS 博客在本地构建不带 AWS 账户的 AWS Glue ETL 管道