如何解决将嵌套的动态结构解析为行
我的嵌套结构的部分如下。有麻烦 解析嵌套结构并将其放入多行。 Scala版本是2.11和spark 2.4.4。 struct bbDemoImps下的结构键是动态的。
{"rates": {"bbDemoImps": {
"44": {
"imps": 0.0,"ue": 0.0,"demoId": "44"
},"49": {
"imps": 0.0,"demoId": "49"
},"45": {
"imps": 0.0,"demoId": "45"
},"50": {
"imps": 0.0,"demoId": "50"
}}}}
试图将结构转换为数组,以便我可以使用explode函数将其放入单独的行中。
val bbDemoImps = new StructType()
.add($"demoId".string)
.add($"imps".double)
.add($"ue".double)
val structSchema =
new StructType()
.add($"bbDemoImps".array(bbDemoImps))
val v1 = v2.select($"array_field".cast(structSchema))
但这给出了错误。 “无法转换structbbDemoImps:struct >
到structbbDemoImps:array
这是正确的方法吗?
预期输出:
weekStartDate|demoId|demos|imps|rcImps
20201130|63|0.0|0.0|0.0
20201130|62|0.0|0.0|0.0
非常感谢任何帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。