胶水作业模式推断问题

问题描述

要求:我需要完成一项胶粘工作,才能将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 dataframe概念。

df0 = datasource.toDF()

我的输入数据帧df0包含struct格式的json数据collection,因此我使用to_json将struct转换为json-string。这里我需要json字符串而不是struct。

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"
                                       ]
}

如果您看到上面的示例pricereatilercategories,则数据类型显示为嵌套属性。

我想要这样的输出

collection : { 
              "name" : "aaa","price" : "1212.0","retailer" :"xxxx","categories" : "[7216]"
}

我该如何解决,请告诉我

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)