【发布时间】:2019-10-07 13:00:18
【问题描述】:
我们正在从 dynamo db 读取数据,因此我们将数据类型作为字符串,但我们希望将字符串数据类型写入数组(映射(数组))
字符串数据:
{"policy_details":[{"cdhid":"123","p2cid":"NA", "roleDesc":"NA","positionnum":"NA"}, {"cdhid":" 1234 ","p2cid":"NA", "roleDesc":"NA","positionnum":"NA"}]}
需要输出:
字符串数据类型需要转换为ARRAY(MAP(ARRAY))
我们尝试了以下架构:
ArrayType([
StructField("policy_num", MapType(ArrayType([
StructField("cdhid", StringType(), True),
StructField("role_id", StringType(), True),
StructField("role_desc", StringType(), True)
])))
])
遇到以下问题:
elementType [StructField(cdhid,StringType,true), StructField(role_id,StringType,true), StructField(role_desc,StringType,true)] 应该是
的实例
【问题讨论】:
-
您使用哪个版本的 spark ?你试过什么?您当前的“架构”不适合您的数据。用您当前的数据解释预期的输出。你当前的数据结构是
map(array(map))
标签: dataframe pyspark schema pyspark-sql