粘合作业模式推理问题
glue job schema inference issue
要求:我需要一个胶水工作来将 aws-dynamodb(嵌套结构 - 映射和列表的组合)数据导入 s3。
我的方法:首先,我使用胶水动态框架将 dynamodb 中的所有数据放入一个动态框架中。
datasource = glueContext.create_dynamic_frame.from_options(
"dynamodb",
connection_options={
"dynamodb.input.tableName": table_name,
"dynamodb.throughput.read.percent": read_percentage,
"dynamodb.splits": "100",
}
)
使用它后,我得到了包含所有数据的 datasource
动态框架。
这里我想做一些转换并执行一些过滤器,所以这就是我使用 pyspark 数据框概念的原因。
df0 = datasource.toDF()
我的输入数据框 df0
包含结构格式的 json 数据 collection
,所以我使用 to_json
将结构转换为 json 字符串。这里我需要 json 字符串而不是结构。
df1 = df0.select(to_json("collection"))
来自 df1
,我正在访问我想要的任何内容。
主要问题
集合中的某些属性显示如下
collection : {
"name" : "aaa",
"id" : "111" ,
"address" : "some address",
"price" :
{"string" : 1212.0 },
"retailer" :
{"string" : "xxxx"},
"categories" : "array": [
"7216"
]
}
如果您看到上面的示例 price
、reatiler
、categories
,数据类型显示为嵌套属性。
我想要这样的输出
collection : {
"name" : "aaa",
"id" : "111" ,
"address" : "some address",
"price" : "1212.0",
"retailer" :"xxxx",
"categories" : "[7216]"
}
我该如何解决这个问题,请告诉我
您面临的问题是预期行为,因为 Glue 让您可以选择为 DynamicFrame 中具有不明确类型的列选择所需的数据类型。
ResolveChoice provides information for resolving ambiguous types within a DynamicFrame with multiple options.
根据您的要求,您可以选择任何一个选项并解决问题。
要求:我需要一个胶水工作来将 aws-dynamodb(嵌套结构 - 映射和列表的组合)数据导入 s3。
我的方法:首先,我使用胶水动态框架将 dynamodb 中的所有数据放入一个动态框架中。
datasource = glueContext.create_dynamic_frame.from_options(
"dynamodb",
connection_options={
"dynamodb.input.tableName": table_name,
"dynamodb.throughput.read.percent": read_percentage,
"dynamodb.splits": "100",
}
)
使用它后,我得到了包含所有数据的 datasource
动态框架。
这里我想做一些转换并执行一些过滤器,所以这就是我使用 pyspark 数据框概念的原因。
df0 = datasource.toDF()
我的输入数据框 df0
包含结构格式的 json 数据 collection
,所以我使用 to_json
将结构转换为 json 字符串。这里我需要 json 字符串而不是结构。
df1 = df0.select(to_json("collection"))
来自 df1
,我正在访问我想要的任何内容。
主要问题
集合中的某些属性显示如下
collection : {
"name" : "aaa",
"id" : "111" ,
"address" : "some address",
"price" :
{"string" : 1212.0 },
"retailer" :
{"string" : "xxxx"},
"categories" : "array": [
"7216"
]
}
如果您看到上面的示例 price
、reatiler
、categories
,数据类型显示为嵌套属性。
我想要这样的输出
collection : {
"name" : "aaa",
"id" : "111" ,
"address" : "some address",
"price" : "1212.0",
"retailer" :"xxxx",
"categories" : "[7216]"
}
我该如何解决这个问题,请告诉我
您面临的问题是预期行为,因为 Glue 让您可以选择为 DynamicFrame 中具有不明确类型的列选择所需的数据类型。
ResolveChoice provides information for resolving ambiguous types within a DynamicFrame with multiple options.
根据您的要求,您可以选择任何一个选项并解决问题。