好的,我从API调用中获取了一个大的Json字符串,我想将一些字符串保存到Cassandra中。我试图将Json字符串解析为更像表格的结构,但只有一些字段。整体架构如下所示:
我希望我的表结构使用regnum,date和value字段。
使用sqlContext.read.json(vals).select(explode('register) as 'reg).select("reg.@attributes.regnum","reg.data.date","reg.data.value").show
我可以得到这样的表:
但是你可以看到日期和值字段是数组。我想每个记录有一个元素,并为每个记录复制相应的regnum。非常感谢任何帮助。
答案 0 :(得分:2)
您可以将DataFrame
转换为Dataset
,然后flatMap
。
df.select("reg.@attributes.regnum","reg.data.date","reg.data.value")
.as[(Long, Array[String], Array[String])]
.flatMap(s => s._2.zip(s._3).map(p => (s._1, p._1, p._2)))