ResolveChoice 类
解析 DynamicFrame 内的选择类型。
示例
我们建议您使用 DynamicFrame.resolveChoice() 方法来处理 DynamicFrame 中包含多种类型的字段。要查看代码示例,请参阅 示例:使用 resolveChoice 处理包含多种类型的列。
方法
__call__(frame, specs = none, choice = "", transformation_ctx = "", info = "", stageThreshold = 0, totalThreshold = 0)
提供有关解析 DynamicFrame 内歧义类型的信息。它返回生成的 DynamicFrame。
-
frame– 在其中解析选择类型的DynamicFrame(必需)。 -
specs– 要解析的特定歧义列表,每个歧义均采用元组形式:(path, action)。path值标识特定歧义元素,action值标识相应解析。只能使用
spec和choice参数之一。如果spec参数不为None,则choice参数必须为空字符串。反过来,如果choice不为空字符串,则spec参数必须为None。如果两个参数均未提供,则 Amazon Glue 尝试解析架构并用它来解析歧义。specs元组的action部分可以指定以下解析策略之一:-
cast– 允许指定一种要强制转换到的类型(例如,cast:int)。 -
make_cols– 通过展平数据来解析潜在的歧义。例如,如果columnA是int或string,则解析就是在结果DynamicFrame中生成名为columnA_int和columnA_string的两个列。 -
make_struct– 通过用一种结构表示数据来解析潜在的歧义。例如,如果某个列中的数据是int或string,则使用make_struct操作会在结果DynamicFrame中生成结构列,而每个结构都同时包含int和string。 -
project– 通过仅在结果DynamicFrame中保留指定类型的值来解析潜在的歧义。例如,如果ChoiceType列中的数据可以是int或string,则指定project:string操作会从结果DynamicFrame中删除非string类型的值。
如果
path识别到数组,则在数组名称后放置一个空的方括号可避免歧义。例如,假设您正在使用结构如下的数据:"myList": [ { "price": 100.00 }, { "price": "$100.00" } ]可以通过将
path设置为"myList[].price"、将action设置为"cast:double"来选择价格的数字而非字符串版本。 -
-
choice–specs参数为None时的默认解析操作。如果specs参数不为None,则只能将此项设置为空字符串,不能设置为其他值。除了先前描述的
specs操作外,此参数还支持以下操作:-
MATCH_CATALOG– 尝试将每个ChoiceType转换为指定数据目录表中的对应类型。
-
-
database– 用于MATCH_CATALOG选择的 Amazon Glue Data Catalog 数据库(对于MATCH_CATALOG是必需的)。 -
table_name– 用于MATCH_CATALOG操作的 Amazon Glue Data Catalog 表名称(对于MATCH_CATALOG是必需的)。 -
transformation_ctx– 用于标识状态信息的唯一字符串 (可选)。 -
info– 与转换中的错误关联的字符串 (可选)。 -
stageThreshold– 在转换出错之前可能在其中发生的最大错误数(可选)。默认值为 0。 -
totalThreshold– 在处理出错之前可能全面发生的最大错误数(可选)。默认值为 0。
apply(cls, *args, **kwargs)
继承自 GlueTransform apply。
name(cls)
继承自 GlueTransform 名称。
describeArgs(cls)
继承自 GlueTransform describeArgs。
describeReturn(cls)
继承自 GlueTransform describeReturn。
describeTransform(cls)
继承自 GlueTransform describeTransform。
describeErrors(cls)
继承自 GlueTransform describeErrors。
describe(cls)
继承自 GlueTransform describe。