ResolveChoice 类
解析 DynamicFrame 内的选择类型。
方法
__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,则只能将此项设置为空字符串,不能设置为其他值。transformation_ctx– 用于标识状态信息的唯一字符串 (可选)。info– 与转换中的错误关联的字符串 (可选)。stageThreshold– 在转换出错之前可能在其中发生的最大错误数 (可选;默认值为零)。totalThreshold– 在处理出错之前可能全面发生的最大错误数 (可选;默认值为零)。
返回包含已解析选择的 DynamicFrame。
df1 = ResolveChoice.apply(df, choice = "make_cols")
df2 = ResolveChoice.apply(df, specs = [("a.b", "make_struct"), ("c.d", "cast:double")])
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。
ResolveChoice 示例
此示例说明了如何将 cust_id 字段中的所有值转换为数据类型 String,以处理列类型歧义。
dyf_resolveChoice = dyf_input.resolveChoice(specs = [('cust_id','cast:String')])