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
。如果两个参数均未提供,则 AWS 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
选择的 AWS Glue Data Catalog 数据库(对于MATCH_CATALOG
是必需的)。 -
table_name
– 用于MATCH_CATALOG
操作的 AWS Glue Data Catalog 表名称(对于MATCH_CATALOG
是必需的)。 -
transformation_ctx
– 用于标识状态信息的唯一字符串 (可选)。 -
info
– 与转换中的错误关联的字符串 (可选)。 -
stageThreshold
– 在转换出错之前可能在其中发生的最大错误数(可选)。默认值为 0。 -
totalThreshold
– 在处理出错之前可能全面发生的最大错误数(可选)。默认值为 0。
apply(cls, *args, **kwargs)
继承自 GlueTransform
apply。
name(cls)
继承自 GlueTransform
name。
describeArgs(cls)
继承自 GlueTransform
describeArgs。
describeReturn(cls)
继承自 GlueTransform
describeReturn。
describeTransform(cls)
继承自 GlueTransform
describeTransform。
describeErrors(cls)
继承自 GlueTransform
describeErrors。
describe(cls)
继承自 GlueTransform
describe。