需求:利用 Spark 解析 xml 文件,xml 结构最大深度有 8 层,数据有复杂的关联关系,处理后会插入到 20 多张表中。由于使用工具解析后的 DataFrame 结构过长,简单截取了一部分如下:
目前没有好的思路,就是获取每一列元素依次遍历提取出所有需要的元素,但是想到要遍历 8 层眼泪都要流下来了:
// 层层对象遍历
val identifiers = row.get(0).asInstanceOf[Row].get(0).asInstanceOf[Row].get(0).asInstanceOf[Row].get(0)
// 解析数组
println(identifiers.asInstanceOf[mutable.WrappedArray[AnyRef]](0))
就以图示中的结构来说,数据不算复杂,但是完整的结构实在是令人神伤,贴了图恐怕会占据整个页面。另外最终要插入的 20 多张表中十几张是关联表。 初次使用 Spark 处理数据,求大家给点意见和思路,万分感谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.