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

Unbox 类

拆开 DynamicFrame 中的字符串字段。

Methods

__call__(frame, path, format, transformation_ctx = "", info="", stageThreshold=0, totalThreshold=0, **options)

拆开 DynamicFrame 中的字符串字段。

  • frame – 要在其中拆开字段的 DynamicFrame(必需)。

  • path – 要拆开的 StringNode 的完整路径 (必需)。

  • format – 格式规范(可选)。这用于 Amazon Simple Storage Service(Amazon S3)或支持多种格式的 Amazon Glue 连接。有关支持的格式,请参阅 Amazon Glue 中的 ETL 输入和输出的格式选项

  • transformation_ctx – 用于标识状态信息的唯一字符串 (可选)。

  • info – 与转换中的错误关联的字符串 (可选)。

  • stageThreshold – 在转换出错之前可能在其中发生的最大错误数 (可选;默认值为零)。

  • totalThreshold – 在处理出错之前可能全面发生的最大错误数 (可选;默认值为零)。

  • separator – 分隔符令牌 (可选)。

  • escaper – 转义令牌 (可选)。

  • skipFirst – 如果应该跳过第一行数据,则为 True,如果不应跳过,则为 False (可选)。

  • withSchema – 一个字符串,其中包含要拆开的数据的架构(可选)。应始终使用 StructType.json 创建它。

  • withHeader – 如果要解包的数据包含标头,则为 True,否则为 False (可选)。

返回一个具有拆开的 DynamicFrame 的新 DynamicRecords

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 描述

Unbox 示例

以下命令创建此示例中使用的 dyf_warehouse DynamicFrame。

warehouse_inventory_list = [ ['TX_WAREHOUSE', '{\ "strawberry":"220",\ "pineapple":"560",\ "mango":"350",\ "pears":null}' ],\ ['CA_WAREHOUSE', '{\ "strawberry":"34",\ "pineapple":"123",\ "mango":"42",\ "pears":null}\ '], ['CO_WAREHOUSE', '{\ "strawberry":"340",\ "pineapple":"180",\ "mango":"2",\ "pears":null}' ] ] warehouse_schema = StructType([StructField("warehouse_loc", StringType())\ ,StructField("data", StringType())]) df_warehouse = spark.createDataFrame(warehouse_inventory_list, schema = warehouse_schema) dyf_warehouse = DynamicFrame.fromDF(df_warehouse, glueContext, "dyf_warehouse")

以下示例中的 Unbox 函数将 String 数据类型内的列表转换为结构。

dyf_warehouse.printSchema() root |-- warehouse_location: string |-- data: string dyf_unbox = Unbox.apply(frame = dyf_warehouse, path = "data", format="json") dyf_unbox.printSchema() root |-- warehouse_loc: string |-- data: struct | |-- strawberry: int | |-- pineapple: int | |-- mango: int | |-- pears: null dyf_unbox.toDF().show() +-------------+----------------+ |warehouse_loc| data| +-------------+----------------+ | TX_WAREHOUSE|[220, 560, 350,]| | CA_WAREHOUSE| [34, 123, 42,]| | CO_WAREHOUSE| [340, 180, 2,]| +-------------+----------------+