Unbox 类
拆开 DynamicFrame 中的字符串字段。
方法
__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(可选)。
返回一个具有拆开的 DynamicRecords 的新 DynamicFrame。
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。
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,]| +-------------+----------------+