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

ResolveChoice 类

解析 DynamicFrame 内的选择类型。

Methods

__call__(frame, specs = None, choice = "", transformation_ctx = "", info = "", stageThreshold = 0, totalThreshold = 0)

提供有关解析 DynamicFrame 内歧义类型的信息。返回生成的 DynamicFrame

  • frame – 在其中解析选择类型的 DynamicFrame (必需)。

  • specs 要解析的特定歧义列表,每个歧义均采用元组形式:(path, action)path 值标识特定歧义元素,action 值标识相应解析。只能使用 specchoice 参数之一。如果 spec 参数不为 None,则 choice 参数必须为空字符串。反过来,如果 choice 不为空字符串,则 spec 参数必须为 None。如果两个参数均未提供,则 Amazon Glue 尝试解析架构并用它来解析歧义。

    action 元组的 specs 部分可以指定四个解析策略之一:

    • cast:   允许指定一种要强制转换到的类型 (例如,cast:int)。

    • make_cols:通过展平数据来解析潜在的歧义。例如,如果 columnAintstring,则解析就是在结果 columnA_int 中生成名为 columnA_stringDynamicFrame 的两个列。

    • make_struct:通过用一种结构表示数据来解析潜在的歧义。例如,如果某个列中的数据是 intstring,则使用 make_struct 操作会在结果 DynamicFrame 中生成结构列,而每个结构都同时包含 intstring

    • project:通过仅在结果 中保留指定类型的值来解析潜在的歧义。DynamicFrame例如,如果 ChoiceType 列中的数据可以是 intstring,则指定 project:string 操作会从结果 DynamicFrame 中删除非 string 类型的值。

    如果 path 识别到数组,则在数组名称后放置一个空的方括号可避免歧义。例如,假设您正在使用结构如下的数据:

    "myList": [ { "price": 100.00 }, { "price": "$100.00" } ]

    可以通过将 path 设置为 "myList[].price"、将 action 设置为 "cast:double" 来选择价格的数字而非字符串版本。

  • choicespecs 参数为 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 描述

ResolveChoice 示例

此示例说明了如何将 cust_id 字段中的所有值转换为数据类型 String,以处理列类型歧义。

dyf_resolveChoice = dyf_input.resolveChoice(specs = [('cust_id','cast:String')])